Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-updates > by-pkgid > 68c0c2ff89d8bf9051ff1b9773ed48e4 > files > 3254

libzypp-doc-17.9.0-1.1.mga7.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libzypp: zypp/target/TargetImpl.cc Source File</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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</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">libzypp
   &#160;<span id="projectnumber">17.9.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<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 id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('TargetImpl_8cc_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">TargetImpl.cc</div>  </div>
</div><!--header-->
<div class="contents">
<a href="TargetImpl_8cc.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*---------------------------------------------------------------------\</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">|                          ____ _   __ __ ___                          |</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">|                         |__  / \ / / . \ . \                         |</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">|                           / / \ V /|  _/  _/                         |</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">|                          / /__ | | | | | |                           |</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">|                         /_____||_| |_| |_|                           |</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">|                                                                      |</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">\---------------------------------------------------------------------*/</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &lt;fstream&gt;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;sstream&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;list&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;set&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;sys/types.h&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;dirent.h&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LogTools_8h.html">zypp/base/LogTools.h</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Exception_8h.html">zypp/base/Exception.h</a>&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Iterator_8h.html">zypp/base/Iterator.h</a>&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Gettext_8h.html">zypp/base/Gettext.h</a>&quot;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IOStream_8h.html">zypp/base/IOStream.h</a>&quot;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Functional_8h.html">zypp/base/Functional.h</a>&quot;</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="UserRequestException_8h.html">zypp/base/UserRequestException.h</a>&quot;</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Json_8h.html">zypp/base/Json.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ZConfig_8h.html">zypp/ZConfig.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ZYppFactory_8h.html">zypp/ZYppFactory.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="PathInfo_8h.html">zypp/PathInfo.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="PoolItem_8h.html">zypp/PoolItem.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ResObjects_8h.html">zypp/ResObjects.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Url_8h.html">zypp/Url.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="TmpPath_8h.html">zypp/TmpPath.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="RepoStatus_8h.html">zypp/RepoStatus.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ExternalProgram_8h.html">zypp/ExternalProgram.h</a>&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Repository_8h.html">zypp/Repository.h</a>&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ShutdownLock__p_8h.html">zypp/ShutdownLock_p.h</a>&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ResFilters_8h.html">zypp/ResFilters.h</a>&quot;</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="HistoryLog_8h.html">zypp/HistoryLog.h</a>&quot;</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="TargetImpl_8h.html">zypp/target/TargetImpl.h</a>&quot;</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="TargetCallbackReceiver_8h.html">zypp/target/TargetCallbackReceiver.h</a>&quot;</span></div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="librpmDb_8h.html">zypp/target/rpm/librpmDb.h</a>&quot;</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="CommitPackageCache_8h.html">zypp/target/CommitPackageCache.h</a>&quot;</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="RpmPostTransCollector_8h.html">zypp/target/RpmPostTransCollector.h</a>&quot;</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ProductFileReader_8h.html">zypp/parser/ProductFileReader.h</a>&quot;</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SrcPackageProvider_8h.html">zypp/repo/SrcPackageProvider.h</a>&quot;</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Pool_8h.html">zypp/sat/Pool.h</a>&quot;</span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="sat_2detail_2PoolImpl_8h.html">zypp/sat/detail/PoolImpl.h</a>&quot;</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Transaction_8h.html">zypp/sat/Transaction.h</a>&quot;</span></div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="PluginExecutor_8h.html">zypp/PluginExecutor.h</a>&quot;</span></div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacestd.html">std</a>;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacezypp.html">zypp</a></div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;{</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;  <span class="keyword">namespace</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;  {</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="comment">// HACK for bnc#906096: let pool re-evaluate multiversion spec</span></div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <span class="comment">// if target root changes. ZConfig returns data sensitive to</span></div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="comment">// current target root.</span></div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">void</span> sigMultiversionSpecChanged()</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    {</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;      sat::detail::PoolMember::myPool().multiversionSpecChanged();</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    }</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;  } <span class="comment">//namespace</span></div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;  <span class="keyword">namespace </span>json</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;  {</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="comment">// Lazy via template specialisation / should switch to overloading</span></div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="namespacezypp_1_1json.html#ae99ef0f07239f5060d8b2c269ccb3625">   85</a></span>&#160;    <span class="keyword">inline</span> std::string <a class="code" href="namespacezypp_1_1json.html#a06176c8c90aebee4cc9e7b06f286d62f">toJSON</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1ZYppCommitResult.html#adb000f54f4a32d2f1ed2f6765ee358aa">ZYppCommitResult::TransactionStepList</a> &amp; steps_r )</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    {</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;      <span class="keyword">using</span> <a class="code" href="classzypp_1_1sat_1_1Transaction.html">sat::Transaction</a>;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;      <a class="code" href="structzypp_1_1json_1_1Array.html">json::Array</a> ret;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;      <span class="keywordflow">for</span> ( <span class="keyword">const</span> Transaction::Step &amp; step : steps_r )</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        <span class="comment">// ignore implicit deletes due to obsoletes and non-package actions</span></div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        <span class="keywordflow">if</span> ( step.stepType() != Transaction::TRANSACTION_IGNORE )</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;          ret.<a class="code" href="structzypp_1_1json_1_1Array.html#ad62ce89c3b4ee36c7085cb6dae5e677f">add</a>( step );</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;      <span class="keywordflow">return</span> ret.<a class="code" href="structzypp_1_1json_1_1Array.html#a3ed607c98fb45379b9fd4971e363f757">asJSON</a>();</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    }</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    <span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="namespacezypp_1_1json.html#a06176c8c90aebee4cc9e7b06f286d62f">  100</a></span>&#160;    <span class="keyword">inline</span> std::string <a class="code" href="namespacezypp_1_1json.html#a06176c8c90aebee4cc9e7b06f286d62f">toJSON</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1sat_1_1Transaction_1_1Step.html">sat::Transaction::Step</a> &amp; step_r )</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    {</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;      <span class="keyword">static</span> <span class="keyword">const</span> std::string strType( <span class="stringliteral">&quot;type&quot;</span> );</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;      <span class="keyword">static</span> <span class="keyword">const</span> std::string strStage( <span class="stringliteral">&quot;stage&quot;</span> );</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;      <span class="keyword">static</span> <span class="keyword">const</span> std::string strSolvable( <span class="stringliteral">&quot;solvable&quot;</span> );</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;      <span class="keyword">static</span> <span class="keyword">const</span> std::string strTypeDel( <span class="stringliteral">&quot;-&quot;</span> );</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;      <span class="keyword">static</span> <span class="keyword">const</span> std::string strTypeIns( <span class="stringliteral">&quot;+&quot;</span> );</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;      <span class="keyword">static</span> <span class="keyword">const</span> std::string strTypeMul( <span class="stringliteral">&quot;M&quot;</span> );</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;      <span class="keyword">static</span> <span class="keyword">const</span> std::string strStageDone( <span class="stringliteral">&quot;ok&quot;</span> );</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;      <span class="keyword">static</span> <span class="keyword">const</span> std::string strStageFailed( <span class="stringliteral">&quot;err&quot;</span> );</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;      <span class="keyword">static</span> <span class="keyword">const</span> std::string strSolvableN( <span class="stringliteral">&quot;n&quot;</span> );</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;      <span class="keyword">static</span> <span class="keyword">const</span> std::string strSolvableE( <span class="stringliteral">&quot;e&quot;</span> );</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;      <span class="keyword">static</span> <span class="keyword">const</span> std::string strSolvableV( <span class="stringliteral">&quot;v&quot;</span> );</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;      <span class="keyword">static</span> <span class="keyword">const</span> std::string strSolvableR( <span class="stringliteral">&quot;r&quot;</span> );</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;      <span class="keyword">static</span> <span class="keyword">const</span> std::string strSolvableA( <span class="stringliteral">&quot;a&quot;</span> );</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;      <span class="keyword">using</span> <a class="code" href="classzypp_1_1sat_1_1Transaction.html">sat::Transaction</a>;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;      <a class="code" href="structzypp_1_1json_1_1Object.html">json::Object</a> ret;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;      <span class="keywordflow">switch</span> ( step_r.<a class="code" href="classzypp_1_1sat_1_1Transaction_1_1Step.html#a590081f3ae28d825a2ed8a116efbf6f3">stepType</a>() )</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;      {</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        <span class="keywordflow">case</span> Transaction::TRANSACTION_IGNORE:   <span class="comment">/*empty*/</span> <span class="keywordflow">break</span>;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        <span class="keywordflow">case</span> Transaction::TRANSACTION_ERASE:    ret.<a class="code" href="structzypp_1_1json_1_1Object.html#a1f8b57ce65140c3243beb4aabe3bfde9">add</a>( strType, strTypeDel ); <span class="keywordflow">break</span>;</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        <span class="keywordflow">case</span> Transaction::TRANSACTION_INSTALL:  ret.<a class="code" href="structzypp_1_1json_1_1Object.html#a1f8b57ce65140c3243beb4aabe3bfde9">add</a>( strType, strTypeIns ); <span class="keywordflow">break</span>;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        <span class="keywordflow">case</span> Transaction::TRANSACTION_MULTIINSTALL: ret.<a class="code" href="structzypp_1_1json_1_1Object.html#a1f8b57ce65140c3243beb4aabe3bfde9">add</a>( strType, strTypeMul ); <span class="keywordflow">break</span>;</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;      }</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;      <span class="keywordflow">switch</span> ( step_r.<a class="code" href="classzypp_1_1sat_1_1Transaction_1_1Step.html#a731c2fac8118f0ab2dfaa45a6ee7f825">stepStage</a>() )</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;      {</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        <span class="keywordflow">case</span> Transaction::STEP_TODO:            <span class="comment">/*empty*/</span> <span class="keywordflow">break</span>;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        <span class="keywordflow">case</span> Transaction::STEP_DONE:            ret.<a class="code" href="structzypp_1_1json_1_1Object.html#a1f8b57ce65140c3243beb4aabe3bfde9">add</a>( strStage, strStageDone ); <span class="keywordflow">break</span>;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        <span class="keywordflow">case</span> Transaction::STEP_ERROR:           ret.<a class="code" href="structzypp_1_1json_1_1Object.html#a1f8b57ce65140c3243beb4aabe3bfde9">add</a>( strStage, strStageFailed ); <span class="keywordflow">break</span>;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;      }</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;      {</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        <a class="code" href="classzypp_1_1IdString.html">IdString</a> ident;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        <a class="code" href="classzypp_1_1Edition.html">Edition</a> ed;</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        <a class="code" href="classzypp_1_1Arch.html">Arch</a> arch;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        <span class="keywordflow">if</span> ( <a class="code" href="classzypp_1_1sat_1_1Solvable.html">sat::Solvable</a> solv = step_r.<a class="code" href="classzypp_1_1sat_1_1Transaction_1_1Step.html#ad163b17a653ef288f582fef461211941">satSolvable</a>() )</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        {</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;          ident = solv.ident();</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;          ed    = solv.edition();</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;          arch  = solv.arch();</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        }</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        {</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;          <span class="comment">// deleted package; post mortem data stored in Transaction::Step</span></div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;          ident = step_r.<a class="code" href="classzypp_1_1sat_1_1Transaction_1_1Step.html#a44403863a0e035235bdb0965dfaa667b">ident</a>();</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;          ed    = step_r.<a class="code" href="classzypp_1_1sat_1_1Transaction_1_1Step.html#adc7d7451b5c2a74574b518aa6cc7892b">edition</a>();</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;          arch  = step_r.<a class="code" href="classzypp_1_1sat_1_1Transaction_1_1Step.html#a1592a00943f098adedbaebcd19f9bb07">arch</a>();</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        }</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <a class="code" href="structzypp_1_1json_1_1Object.html">json::Object</a> s {</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;          { strSolvableN, ident.<a class="code" href="classzypp_1_1IdString.html#aac331154f11ed8c31ac5e74b117bf000">asString</a>() },</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;          { strSolvableV, ed.<a class="code" href="classzypp_1_1Edition.html#a2d905c5efd947bf409860fad9cc00fcf">version</a>() },</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;          { strSolvableR, ed.<a class="code" href="classzypp_1_1Edition.html#a7cdc3e215b0635ad5947801af94971d5">release</a>() },</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;          { strSolvableA, arch.<a class="code" href="classzypp_1_1Arch.html#ae237347f0d2eeb0f87c024538e479e99">asString</a>() }</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        };</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        <span class="keywordflow">if</span> ( <a class="code" href="classzypp_1_1Edition.html#a2a7474c4e9591db9d6edc1b173138a3f">Edition::epoch_t</a> epoch = ed.<a class="code" href="classzypp_1_1Edition.html#ac4140fa590061a1f0d33b6d695d9b7ca">epoch</a>() )</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;          s.add( strSolvableE, epoch );</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;        ret.<a class="code" href="structzypp_1_1json_1_1Object.html#a1f8b57ce65140c3243beb4aabe3bfde9">add</a>( strSolvable, s );</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;      }</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;      <span class="keywordflow">return</span> ret.<a class="code" href="structzypp_1_1json_1_1Object.html#a451ce347e9e8368ceed5752afe2d6dc8">asJSON</a>();</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    }</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;  } <span class="comment">// namespace json</span></div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;  <span class="keyword">namespace </span>target</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;  {</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    <span class="keyword">namespace</span></div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    {</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;      SolvIdentFile::Data getUserInstalledFromHistory( <span class="keyword">const</span> Pathname &amp; historyFile_r )</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;      {</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;        SolvIdentFile::Data onSystemByUserList;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;        <span class="comment">// go and parse it: &#39;who&#39; must constain an &#39;@&#39;, then it was installed by user request.</span></div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;        <span class="comment">// 2009-09-29 07:25:19|install|lirc-remotes|0.8.5-3.2|x86_64|root@opensuse|InstallationImage|a204211eb0...</span></div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        std::ifstream infile( historyFile_r.c_str() );</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        <span class="keywordflow">for</span>( iostr::EachLine in( infile ); in; in.next() )</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        {</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;          <span class="keyword">const</span> <span class="keywordtype">char</span> * ch( (*in).c_str() );</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;          <span class="comment">// start with year</span></div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;          <span class="keywordflow">if</span> ( *ch &lt; <span class="charliteral">&#39;1&#39;</span> || <span class="charliteral">&#39;9&#39;</span> &lt; *ch )</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;            <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;          <span class="keyword">const</span> <span class="keywordtype">char</span> * sep1 = ::strchr( ch, <span class="charliteral">&#39;|&#39;</span> );      <span class="comment">// | after date</span></div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;          <span class="keywordflow">if</span> ( !sep1 )</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;            <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;          ++sep1;</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;          <span class="comment">// if logs an install or delete</span></div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;          <span class="keywordtype">bool</span> installs = <span class="keyword">true</span>;</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;          <span class="keywordflow">if</span> ( ::strncmp( sep1, <span class="stringliteral">&quot;install|&quot;</span>, 8 ) )</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;          {</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;            <span class="keywordflow">if</span> ( ::strncmp( sep1, <span class="stringliteral">&quot;remove |&quot;</span>, 8 ) )</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;              <span class="keywordflow">continue</span>; <span class="comment">// no install and no remove</span></div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;              <span class="keywordflow">else</span></div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;                installs = <span class="keyword">false</span>; <span class="comment">// remove</span></div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;          }</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;          sep1 += 8;                                    <span class="comment">// | after what</span></div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;          <span class="comment">// get the package name</span></div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;          <span class="keyword">const</span> <span class="keywordtype">char</span> * sep2 = ::strchr( sep1, <span class="charliteral">&#39;|&#39;</span> );    <span class="comment">// | after name</span></div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;          <span class="keywordflow">if</span> ( !sep2 || sep1 == sep2 )</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;            <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;          (*in)[sep2-ch] = <span class="charliteral">&#39;\0&#39;</span>;</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;          IdString pkg( sep1 );</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;          <span class="comment">// we&#39;re done, if a delete</span></div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;          <span class="keywordflow">if</span> ( !installs )</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;          {</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;            onSystemByUserList.erase( pkg );</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;            <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;          }</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;          <span class="comment">// now guess whether user installed or not (3rd next field contains &#39;user@host&#39;)</span></div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;          <span class="keywordflow">if</span> ( (sep1 = ::strchr( sep2+1, <span class="charliteral">&#39;|&#39;</span> ))         <span class="comment">// | after version</span></div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;            &amp;&amp; (sep1 = ::strchr( sep1+1, <span class="charliteral">&#39;|&#39;</span> ))         <span class="comment">// | after arch</span></div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;            &amp;&amp; (sep2 = ::strchr( sep1+1, <span class="charliteral">&#39;|&#39;</span> )) )       <span class="comment">// | after who</span></div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;          {</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;            (*in)[sep2-ch] = <span class="charliteral">&#39;\0&#39;</span>;</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;            <span class="keywordflow">if</span> ( ::strchr( sep1+1, <span class="charliteral">&#39;@&#39;</span> ) )</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;            {</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;              <span class="comment">// by user</span></div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;              onSystemByUserList.insert( pkg );</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;              <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;            }</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;          }</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;        }</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;        <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;onSystemByUserList found: &quot;</span> &lt;&lt; onSystemByUserList.size() &lt;&lt; endl;</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;        <span class="keywordflow">return</span> onSystemByUserList;</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;      }</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    } <span class="comment">// namespace</span></div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    <span class="keyword">namespace</span></div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    {</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;      <span class="keyword">inline</span> PluginFrame transactionPluginFrame( <span class="keyword">const</span> std::string &amp; command_r, ZYppCommitResult::TransactionStepList &amp; steps_r )</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;      {</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;        <span class="keywordflow">return</span> PluginFrame( command_r, json::Object {</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;          { <span class="stringliteral">&quot;TransactionStepList&quot;</span>, steps_r }</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;        }.asJSON() );</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;      }</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    } <span class="comment">// namespace</span></div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="namespacezypp_1_1target.html#a97f6495f9b6a0e6594adfd13002152d1">  249</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="namespacezypp_1_1target.html#a97f6495f9b6a0e6594adfd13002152d1">writeUpgradeTestcase</a>()</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    {</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;      <span class="keywordtype">unsigned</span> toKeep( ZConfig::instance().solver_upgradeTestcasesToKeep() );</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;      <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;Testcases to keep: &quot;</span> &lt;&lt; toKeep &lt;&lt; endl;</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;      <span class="keywordflow">if</span> ( !toKeep )</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;      <a class="code" href="classTarget__Ptr.html">Target_Ptr</a> target( getZYpp()-&gt;getTarget() );</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;      <span class="keywordflow">if</span> ( ! target )</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;      {</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;        <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> &lt;&lt; <span class="stringliteral">&quot;No Target no Testcase!&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;      }</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;      std::string stem( <span class="stringliteral">&quot;updateTestcase&quot;</span> );</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;      <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> dir( target-&gt;assertRootPrefix(<span class="stringliteral">&quot;/var/log/&quot;</span>) );</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;      <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> next( dir / Date::now().<a class="code" href="group__ZYPP__SMART__PTR.html#ga9ffc8a01367e8a71d551ea8dbdc356f2">form</a>( stem+<span class="stringliteral">&quot;-%Y-%m-%d-%H-%M-%S&quot;</span> ) );</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;      {</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;        std::list&lt;std::string&gt; content;</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        <a class="code" href="namespacezypp_1_1filesystem.html#a424d384472de80e5cc48f5d5662cc859">filesystem::readdir</a>( content, dir, <span class="comment">/*dots*/</span><span class="keyword">false</span> );</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        std::set&lt;std::string&gt; cases;</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;        <a class="code" href="Easy_8h.html#a7887338b8a0727becb37d8061fcbfc0e">for_</a>( c, content.begin(), content.end() )</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;        {</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;          <span class="keywordflow">if</span> ( <a class="code" href="namespacezypp_1_1str.html#a6e25ab4e5c5c44111994709692fb08eb">str::startsWith</a>( *c, stem ) )</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;            cases.insert( *c );</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;        }</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;        <span class="keywordflow">if</span> ( cases.size() &gt;= toKeep )</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        {</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;          <span class="keywordtype">unsigned</span> toDel = cases.size() - toKeep + 1; <span class="comment">// +1 for the new one</span></div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;          <a class="code" href="Easy_8h.html#a7887338b8a0727becb37d8061fcbfc0e">for_</a>( c, cases.begin(), cases.end() )</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;          {</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;            <a class="code" href="namespacezypp_1_1filesystem.html#a72db515ee4c999779798712405ed25e6">filesystem::recursive_rmdir</a>( dir/(*c) );</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;            <span class="keywordflow">if</span> ( ! --toDel )</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;              <span class="keywordflow">break</span>;</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;          }</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        }</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;      }</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;      <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;Write new testcase &quot;</span> &lt;&lt; next &lt;&lt; endl;</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;      getZYpp()-&gt;resolver()-&gt;createSolverTestcase( next.asString(), <span class="keyword">false</span><span class="comment">/*no solving*/</span> );</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    }</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    <span class="keyword">namespace</span></div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;    { </div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;      std::pair&lt;bool,PatchScriptReport::Action&gt; doExecuteScript( <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp; root_r,</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;                                                                 <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp; script_r,</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;                                                                 <a class="code" href="structzypp_1_1callback_1_1SendReport.html">callback::SendReport&lt;PatchScriptReport&gt;</a> &amp; report_r )</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;      {</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;        <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;Execute script &quot;</span> &lt;&lt; <a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html">PathInfo</a>(Pathname::assertprefix( root_r,script_r)) &lt;&lt; endl;</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;        <a class="code" href="classzypp_1_1HistoryLog.html">HistoryLog</a> historylog;</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;        historylog.<a class="code" href="classzypp_1_1HistoryLog.html#ade928588f3c1325ba80195464a3013f1">comment</a>(script_r.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#a91a822e47df9fa6f484a7b771a0b3c94">asString</a>() + <a class="code" href="Gettext_8h.html#ad0ac7087c1804ce80118f897d7edd897">_</a>(<span class="stringliteral">&quot; executed&quot;</span>), <span class="comment">/*timestamp*/</span><span class="keyword">true</span>);</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;        <a class="code" href="classzypp_1_1ExternalProgram.html">ExternalProgram</a> prog( script_r.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#a91a822e47df9fa6f484a7b771a0b3c94">asString</a>(), ExternalProgram::Stderr_To_Stdout, <span class="keyword">false</span>, -1, <span class="keyword">true</span>, root_r );</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;        <span class="keywordflow">for</span> ( std::string output = prog.receiveLine(); output.length(); output = prog.receiveLine() )</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;        {</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;          historylog.<a class="code" href="classzypp_1_1HistoryLog.html#ade928588f3c1325ba80195464a3013f1">comment</a>(output);</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;          <span class="keywordflow">if</span> ( ! report_r-&gt;progress( PatchScriptReport::OUTPUT, output ) )</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;          {</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;            <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> &lt;&lt; <span class="stringliteral">&quot;User request to abort script &quot;</span> &lt;&lt; script_r &lt;&lt; endl;</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;            prog.kill();</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;            <span class="comment">// the rest is handled by exit code evaluation</span></div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;            <span class="comment">// in case the script has meanwhile finished.</span></div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;          }</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;        }</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;        std::pair&lt;bool,PatchScriptReport::Action&gt; ret( std::make_pair( <span class="keyword">false</span>, PatchScriptReport::ABORT ) );</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;        <span class="keywordflow">if</span> ( prog.close() != 0 )</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;        {</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;          ret.second = report_r-&gt;problem( prog.execError() );</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;          <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> &lt;&lt; <span class="stringliteral">&quot;ACTION&quot;</span> &lt;&lt; ret.second &lt;&lt; <span class="stringliteral">&quot;(&quot;</span> &lt;&lt; prog.execError() &lt;&lt; <span class="stringliteral">&quot;)&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;          std::ostringstream sstr;</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;          sstr &lt;&lt; script_r &lt;&lt; <a class="code" href="Gettext_8h.html#ad0ac7087c1804ce80118f897d7edd897">_</a>(<span class="stringliteral">&quot; execution failed&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; (&quot;</span> &lt;&lt; prog.execError() &lt;&lt; <span class="stringliteral">&quot;)&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;          historylog.<a class="code" href="classzypp_1_1HistoryLog.html#ade928588f3c1325ba80195464a3013f1">comment</a>(sstr.str(), <span class="comment">/*timestamp*/</span><span class="keyword">true</span>);</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;          <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;        }</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;        report_r-&gt;finish();</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;        ret.first = <span class="keyword">true</span>;</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;        <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;      }</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;      <span class="keywordtype">bool</span> executeScript( <span class="keyword">const</span> Pathname &amp; root_r,</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;                          <span class="keyword">const</span> Pathname &amp; script_r,</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;                          callback::SendReport&lt;PatchScriptReport&gt; &amp; report_r )</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;      {</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;        std::pair&lt;bool,PatchScriptReport::Action&gt; action( std::make_pair( <span class="keyword">false</span>, PatchScriptReport::ABORT ) );</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;        <span class="keywordflow">do</span> {</div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;          action = doExecuteScript( root_r, script_r, report_r );</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;          <span class="keywordflow">if</span> ( action.first )</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">true</span>; <span class="comment">// success</span></div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;          <span class="keywordflow">switch</span> ( action.second )</div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;          {</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;            <span class="keywordflow">case</span> PatchScriptReport::ABORT:</div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;              <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> &lt;&lt; <span class="stringliteral">&quot;User request to abort at script &quot;</span> &lt;&lt; script_r &lt;&lt; endl;</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;              <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// requested abort.</span></div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;              <span class="keywordflow">break</span>;</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;            <span class="keywordflow">case</span> PatchScriptReport::IGNORE:</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;              <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> &lt;&lt; <span class="stringliteral">&quot;User request to skip script &quot;</span> &lt;&lt; script_r &lt;&lt; endl;</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;              <span class="keywordflow">return</span> <span class="keyword">true</span>; <span class="comment">// requested skip.</span></div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;              <span class="keywordflow">break</span>;</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;            <span class="keywordflow">case</span> PatchScriptReport::RETRY:</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;              <span class="keywordflow">break</span>; <span class="comment">// again</span></div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;          }</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;        } <span class="keywordflow">while</span> ( action.second == PatchScriptReport::RETRY );</div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;        <span class="comment">// THIS is not intended to be reached:</span></div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;        <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#gafeeffe52c8fd59db7c61cf8b02042dbf">INT</a> &lt;&lt; <span class="stringliteral">&quot;Abort on unknown ACTION request &quot;</span> &lt;&lt; action.second &lt;&lt; <span class="stringliteral">&quot; returned&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// abort.</span></div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;      }</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;      <span class="keywordtype">bool</span> RunUpdateScripts( <span class="keyword">const</span> Pathname &amp; root_r,</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;                             <span class="keyword">const</span> Pathname &amp; scriptsPath_r,</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;                             <span class="keyword">const</span> std::vector&lt;sat::Solvable&gt; &amp; checkPackages_r,</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;                             <span class="keywordtype">bool</span> aborting_r )</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;      {</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;        <span class="keywordflow">if</span> ( checkPackages_r.empty() )</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;          <span class="keywordflow">return</span> <span class="keyword">true</span>; <span class="comment">// no installed packages to check</span></div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;        <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;Looking for new update scripts in (&quot;</span> &lt;&lt;  root_r &lt;&lt; <span class="stringliteral">&quot;)&quot;</span> &lt;&lt; scriptsPath_r &lt;&lt; endl;</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;        Pathname scriptsDir( Pathname::assertprefix( root_r, scriptsPath_r ) );</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;        <span class="keywordflow">if</span> ( ! PathInfo( scriptsDir ).isDir() )</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;          <span class="keywordflow">return</span> <span class="keyword">true</span>; <span class="comment">// no script dir</span></div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;        std::list&lt;std::string&gt; scripts;</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;        <a class="code" href="namespacezypp_1_1filesystem.html#a424d384472de80e5cc48f5d5662cc859">filesystem::readdir</a>( scripts, scriptsDir, <span class="comment">/*dots*/</span><span class="keyword">false</span> );</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;        <span class="keywordflow">if</span> ( scripts.empty() )</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;          <span class="keywordflow">return</span> <span class="keyword">true</span>; <span class="comment">// no scripts in script dir</span></div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;        <span class="comment">// Now collect and execute all matching scripts.</span></div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;        <span class="comment">// On ABORT: at least log all outstanding scripts.</span></div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;        <span class="comment">// - &quot;name-version-release&quot;</span></div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;        <span class="comment">// - &quot;name-version-release-*&quot;</span></div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;        <span class="keywordtype">bool</span> abort = <span class="keyword">false</span>;</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;        std::map&lt;std::string, Pathname&gt; unify; <span class="comment">// scripts &lt;md5,path&gt;</span></div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;        <a class="code" href="Easy_8h.html#a7887338b8a0727becb37d8061fcbfc0e">for_</a>( it, checkPackages_r.begin(), checkPackages_r.end() )</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;        {</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;          std::string prefix( <a class="code" href="group__ZYPP__SMART__PTR.html#ga9ffc8a01367e8a71d551ea8dbdc356f2">str::form</a>( <span class="stringliteral">&quot;%s-%s&quot;</span>, it-&gt;name().c_str(), it-&gt;edition().c_str() ) );</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;          <a class="code" href="Easy_8h.html#a7887338b8a0727becb37d8061fcbfc0e">for_</a>( sit, scripts.begin(), scripts.end() )</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;          {</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;            <span class="keywordflow">if</span> ( ! <a class="code" href="namespacezypp_1_1str.html#a5e64cab973a815bfc5c3811b5086a2b9">str::hasPrefix</a>( *sit, prefix ) )</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;              <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;</div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;            <span class="keywordflow">if</span> ( (*sit)[prefix.size()] != <span class="charliteral">&#39;\0&#39;</span> &amp;&amp; (*sit)[prefix.size()] != <span class="charliteral">&#39;-&#39;</span> )</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;              <span class="keywordflow">continue</span>; <span class="comment">// if not exact match it had to continue with &#39;-&#39;</span></div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;            PathInfo script( scriptsDir / *sit );</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;            Pathname localPath( scriptsPath_r/(*sit) ); <span class="comment">// without root prefix</span></div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;            std::string unifytag;                       <span class="comment">// must not stay empty</span></div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;            <span class="keywordflow">if</span> ( script.isFile() )</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;            {</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;              <span class="comment">// Assert it&#39;s set executable, unify by md5sum.</span></div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;              <a class="code" href="namespacezypp_1_1filesystem.html#a9e50ac998d9b9d592ef1ba4c5c7db1ce">filesystem::addmod</a>( script.path(), 0500 );</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;              unifytag = <a class="code" href="namespacezypp_1_1filesystem.html#ae16e3e32db135f9dcbd7a36c46114c7c">filesystem::md5sum</a>( script.path() );</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;            }</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( ! script.isExist() )</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;            {</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;              <span class="comment">// Might be a dangling symlink, might be ok if we are in</span></div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;              <span class="comment">// instsys (absolute symlink within the system below /mnt).</span></div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;              <span class="comment">// readlink will tell....</span></div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;              unifytag = <a class="code" href="namespacezypp_1_1filesystem.html#ab1a313229e3a86d2778f6bf54004ccb1">filesystem::readlink</a>( script.path() ).<a class="code" href="namespacezypp.html#a1547a676c9d1f206e0ed614d42d74c2d">asString</a>();</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;            }</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;            <span class="keywordflow">if</span> ( unifytag.empty() )</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;              <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;            <span class="comment">// Unify scripts</span></div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;            <span class="keywordflow">if</span> ( unify[unifytag].empty() )</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;            {</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;              unify[unifytag] = localPath;</div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;            }</div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;            <span class="keywordflow">else</span></div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;            {</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;              <span class="comment">// translators: We may find the same script content in files with different names.</span></div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;              <span class="comment">// Only the first occurence is executed, subsequent ones are skipped. It&#39;s a one-line</span></div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;              <span class="comment">// message for a log file. Preferably start translation with &quot;%s&quot;</span></div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;              std::string msg( <a class="code" href="group__ZYPP__SMART__PTR.html#ga9ffc8a01367e8a71d551ea8dbdc356f2">str::form</a>(<a class="code" href="Gettext_8h.html#ad0ac7087c1804ce80118f897d7edd897">_</a>(<span class="stringliteral">&quot;%s already executed as %s)&quot;</span>), localPath.asString().c_str(), unify[unifytag].c_str() ) );</div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;              <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;Skip update script: &quot;</span> &lt;&lt; msg &lt;&lt; endl;</div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;              HistoryLog().comment( msg, <span class="comment">/*timestamp*/</span><span class="keyword">true</span> );</div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;              <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;            }</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;</div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;            <span class="keywordflow">if</span> ( abort || aborting_r )</div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;            {</div><div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;              <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> &lt;&lt; <span class="stringliteral">&quot;Aborting: Skip update script &quot;</span> &lt;&lt; *sit &lt;&lt; endl;</div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;              HistoryLog().comment(</div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;                  localPath.asString() + <a class="code" href="Gettext_8h.html#ad0ac7087c1804ce80118f897d7edd897">_</a>(<span class="stringliteral">&quot; execution skipped while aborting&quot;</span>),</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;                  <span class="comment">/*timestamp*/</span><span class="keyword">true</span>);</div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;            }</div><div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;            <span class="keywordflow">else</span></div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;            {</div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;              <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;Found update script &quot;</span> &lt;&lt; *sit &lt;&lt; endl;</div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;              callback::SendReport&lt;PatchScriptReport&gt; <a class="code" href="MediaCurl_8cc.html#a4e0826ef1eedfec4b8c01665fedeb6d6">report</a>;</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;              <a class="code" href="MediaCurl_8cc.html#a4e0826ef1eedfec4b8c01665fedeb6d6">report</a>-&gt;start( make&lt;Package&gt;( *it ), script.path() );</div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;              <span class="keywordflow">if</span> ( ! executeScript( root_r, localPath, <a class="code" href="MediaCurl_8cc.html#a4e0826ef1eedfec4b8c01665fedeb6d6">report</a> ) ) <span class="comment">// script path without root prefix!</span></div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;                abort = <span class="keyword">true</span>; <span class="comment">// requested abort.</span></div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;            }</div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;          }</div><div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;        }</div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;        <span class="keywordflow">return</span> !abort;</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;      }</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;      <span class="comment">//</span></div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;      <span class="keyword">inline</span> <span class="keywordtype">void</span> copyTo( std::ostream &amp; out_r, <span class="keyword">const</span> Pathname &amp; file_r )</div><div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;      {</div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;        std::ifstream infile( file_r.c_str() );</div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;        <span class="keywordflow">for</span>( iostr::EachLine in( infile ); in; in.next() )</div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;        {</div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;          out_r &lt;&lt; *in &lt;&lt; endl;</div><div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;        }</div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;      }</div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;</div><div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;      <span class="keyword">inline</span> std::string notificationCmdSubst( <span class="keyword">const</span> std::string &amp; cmd_r, <span class="keyword">const</span> UpdateNotificationFile &amp; notification_r )</div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;      {</div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;        std::string ret( cmd_r );</div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;<span class="preprocessor">#define SUBST_IF(PAT,VAL) if ( ret.find( PAT ) != std::string::npos ) ret = str::gsub( ret, PAT, VAL )</span></div><div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;        <a class="code" href="TargetImpl_8cc.html#a32d03a48d7908871246afaf63302bc9d">SUBST_IF</a>( <span class="stringliteral">&quot;%p&quot;</span>, notification_r.solvable().asString() );</div><div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;        <a class="code" href="TargetImpl_8cc.html#a32d03a48d7908871246afaf63302bc9d">SUBST_IF</a>( <span class="stringliteral">&quot;%P&quot;</span>, notification_r.file().asString() );</div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;<span class="preprocessor">#undef SUBST_IF</span></div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;        <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;      }</div><div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;</div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;      <span class="keywordtype">void</span> sendNotification( <span class="keyword">const</span> Pathname &amp; root_r,</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;                             <span class="keyword">const</span> <a class="code" href="namespacezypp.html#acd74b4b3696e34dd6934c147176712db">UpdateNotifications</a> &amp; notifications_r )</div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;      {</div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;        <span class="keywordflow">if</span> ( notifications_r.empty() )</div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;          <span class="keywordflow">return</span>;</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;        std::string cmdspec( ZConfig::instance().updateMessagesNotify() );</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;        <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;Notification command is &#39;&quot;</span> &lt;&lt; cmdspec &lt;&lt; <span class="stringliteral">&quot;&#39;&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;        <span class="keywordflow">if</span> ( cmdspec.empty() )</div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;          <span class="keywordflow">return</span>;</div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;</div><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;        <a class="code" href="namespacezypp_1_1sat_1_1detail.html#ac0d3ca93132eee14b022898f23b49d07">std::string::size_type</a> pos( cmdspec.find( <span class="charliteral">&#39;|&#39;</span> ) );</div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;        <span class="keywordflow">if</span> ( pos == std::string::npos )</div><div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;        {</div><div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;          <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a> &lt;&lt; <span class="stringliteral">&quot;Can&#39;t send Notification: Missing &#39;format |&#39; in command spec.&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;          HistoryLog().comment( str::Str() &lt;&lt; <a class="code" href="Gettext_8h.html#ad0ac7087c1804ce80118f897d7edd897">_</a>(<span class="stringliteral">&quot;Error sending update message notification.&quot;</span>), <span class="comment">/*timestamp*/</span><span class="keyword">true</span> );</div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;          <span class="keywordflow">return</span>;</div><div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;        }</div><div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;</div><div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;        std::string formatStr( <a class="code" href="namespacezypp_1_1str.html#adb668ecb122eb6de2d61fa3b3cbea555">str::toLower</a>( <a class="code" href="namespacezypp_1_1str.html#af8bbe6f32fcb2fe4e652320506b3ba9d">str::trim</a>( cmdspec.substr( 0, pos ) ) ) );</div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;        std::string commandStr( <a class="code" href="namespacezypp_1_1str.html#af8bbe6f32fcb2fe4e652320506b3ba9d">str::trim</a>( cmdspec.substr( pos + 1 ) ) );</div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;</div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;        <span class="keyword">enum</span> Format { UNKNOWN, NONE, SINGLE, DIGEST, BULK };</div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;        Format format = UNKNOWN;</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;        <span class="keywordflow">if</span> ( formatStr == <span class="stringliteral">&quot;none&quot;</span> )</div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;          format = NONE;</div><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( formatStr == <span class="stringliteral">&quot;single&quot;</span> )</div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;          format = SINGLE;</div><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( formatStr == <span class="stringliteral">&quot;digest&quot;</span> )</div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;          format = DIGEST;</div><div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( formatStr == <span class="stringliteral">&quot;bulk&quot;</span> )</div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;          format = BULK;</div><div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;        {</div><div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;          <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a> &lt;&lt; <span class="stringliteral">&quot;Can&#39;t send Notification: Unknown format &#39;&quot;</span> &lt;&lt; formatStr &lt;&lt; <span class="stringliteral">&quot; |&#39; in command spec.&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;          HistoryLog().comment( str::Str() &lt;&lt; <a class="code" href="Gettext_8h.html#ad0ac7087c1804ce80118f897d7edd897">_</a>(<span class="stringliteral">&quot;Error sending update message notification.&quot;</span>), <span class="comment">/*timestamp*/</span><span class="keyword">true</span> );</div><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;         <span class="keywordflow">return</span>;</div><div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;        }</div><div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;</div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;        <span class="comment">// Take care: commands are ececuted chroot(root_r). The message file</span></div><div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;        <span class="comment">// pathnames in notifications_r are local to root_r. For physical access</span></div><div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;        <span class="comment">// to the file they need to be prefixed.</span></div><div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;</div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;        <span class="keywordflow">if</span> ( format == NONE || format == SINGLE )</div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;        {</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;          <a class="code" href="Easy_8h.html#a7887338b8a0727becb37d8061fcbfc0e">for_</a>( it, notifications_r.begin(), notifications_r.end() )</div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;          {</div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;            std::vector&lt;std::string&gt; command;</div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;            <span class="keywordflow">if</span> ( format == SINGLE )</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;              command.push_back( <span class="stringliteral">&quot;&lt;&quot;</span>+Pathname::assertprefix( root_r, it-&gt;file() ).<a class="code" href="namespacezypp.html#a1547a676c9d1f206e0ed614d42d74c2d">asString</a>() );</div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;            <a class="code" href="namespacezypp_1_1str.html#af527b575ab4e9356e364abccfd44ddcf">str::splitEscaped</a>( notificationCmdSubst( commandStr, *it ), std::back_inserter( command ) );</div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;            ExternalProgram prog( command, ExternalProgram::Stderr_To_Stdout, <span class="keyword">false</span>, -1, <span class="keyword">true</span>, root_r );</div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;            <span class="keywordflow">if</span> ( <span class="keyword">true</span> ) <span class="comment">// Wait for feedback</span></div><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;            {</div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;              <span class="keywordflow">for</span>( std::string line = prog.receiveLine(); ! line.empty(); line = prog.receiveLine() )</div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;              {</div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;                <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> &lt;&lt; line;</div><div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;              }</div><div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;              <span class="keywordtype">int</span> ret = prog.close();</div><div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;              <span class="keywordflow">if</span> ( ret != 0 )</div><div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;              {</div><div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;                <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a> &lt;&lt; <span class="stringliteral">&quot;Notification command returned with error (&quot;</span> &lt;&lt; ret &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;                HistoryLog().comment( str::Str() &lt;&lt; <a class="code" href="Gettext_8h.html#ad0ac7087c1804ce80118f897d7edd897">_</a>(<span class="stringliteral">&quot;Error sending update message notification.&quot;</span>), <span class="comment">/*timestamp*/</span><span class="keyword">true</span> );</div><div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;                <span class="keywordflow">return</span>;</div><div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;              }</div><div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;            }</div><div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;          }</div><div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;        }</div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( format == DIGEST || format == BULK )</div><div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;        {</div><div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;          filesystem::TmpFile tmpfile;</div><div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;          ofstream out( tmpfile.path().c_str() );</div><div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;          <a class="code" href="Easy_8h.html#a7887338b8a0727becb37d8061fcbfc0e">for_</a>( it, notifications_r.begin(), notifications_r.end() )</div><div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;          {</div><div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;            <span class="keywordflow">if</span> ( format == DIGEST )</div><div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;            {</div><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;              out &lt;&lt; it-&gt;file() &lt;&lt; endl;</div><div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;            }</div><div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( format == BULK )</div><div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;            {</div><div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;              copyTo( out &lt;&lt; <span class="charliteral">&#39;\f&#39;</span>, Pathname::assertprefix( root_r, it-&gt;file() ) );</div><div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;            }</div><div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;          }</div><div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;</div><div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;          std::vector&lt;std::string&gt; command;</div><div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;          command.push_back( <span class="stringliteral">&quot;&lt;&quot;</span>+tmpfile.path().asString() ); <span class="comment">// redirect input</span></div><div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;          <a class="code" href="namespacezypp_1_1str.html#af527b575ab4e9356e364abccfd44ddcf">str::splitEscaped</a>( notificationCmdSubst( commandStr, *notifications_r.begin() ), std::back_inserter( command ) );</div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;</div><div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;          ExternalProgram prog( command, ExternalProgram::Stderr_To_Stdout, <span class="keyword">false</span>, -1, <span class="keyword">true</span>, root_r );</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;          <span class="keywordflow">if</span> ( <span class="keyword">true</span> ) <span class="comment">// Wait for feedback otherwise the TmpFile goes out of scope.</span></div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;          {</div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;            <span class="keywordflow">for</span>( std::string line = prog.receiveLine(); ! line.empty(); line = prog.receiveLine() )</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;            {</div><div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;              <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> &lt;&lt; line;</div><div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;            }</div><div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;            <span class="keywordtype">int</span> ret = prog.close();</div><div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;            <span class="keywordflow">if</span> ( ret != 0 )</div><div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;            {</div><div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;              <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a> &lt;&lt; <span class="stringliteral">&quot;Notification command returned with error (&quot;</span> &lt;&lt; ret &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;              HistoryLog().comment( str::Str() &lt;&lt; <a class="code" href="Gettext_8h.html#ad0ac7087c1804ce80118f897d7edd897">_</a>(<span class="stringliteral">&quot;Error sending update message notification.&quot;</span>), <span class="comment">/*timestamp*/</span><span class="keyword">true</span> );</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;              <span class="keywordflow">return</span>;</div><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;            }</div><div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;          }</div><div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;        }</div><div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;        {</div><div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;          <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#gafeeffe52c8fd59db7c61cf8b02042dbf">INT</a> &lt;&lt; <span class="stringliteral">&quot;Can&#39;t send Notification: Missing handler for &#39;format |&#39; in command spec.&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;          HistoryLog().comment( str::Str() &lt;&lt; <a class="code" href="Gettext_8h.html#ad0ac7087c1804ce80118f897d7edd897">_</a>(<span class="stringliteral">&quot;Error sending update message notification.&quot;</span>), <span class="comment">/*timestamp*/</span><span class="keyword">true</span> );</div><div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;          <span class="keywordflow">return</span>;</div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;        }</div><div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;      }</div><div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;</div><div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;</div><div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;      <span class="keywordtype">void</span> RunUpdateMessages( <span class="keyword">const</span> Pathname &amp; root_r,</div><div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;                              <span class="keyword">const</span> Pathname &amp; messagesPath_r,</div><div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;                              <span class="keyword">const</span> std::vector&lt;sat::Solvable&gt; &amp; checkPackages_r,</div><div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;                              ZYppCommitResult &amp; result_r )</div><div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;      {</div><div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;        <span class="keywordflow">if</span> ( checkPackages_r.empty() )</div><div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;          <span class="keywordflow">return</span>; <span class="comment">// no installed packages to check</span></div><div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;</div><div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;        <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;Looking for new update messages in (&quot;</span> &lt;&lt;  root_r &lt;&lt; <span class="stringliteral">&quot;)&quot;</span> &lt;&lt; messagesPath_r &lt;&lt; endl;</div><div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;        Pathname messagesDir( Pathname::assertprefix( root_r, messagesPath_r ) );</div><div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;        <span class="keywordflow">if</span> ( ! PathInfo( messagesDir ).isDir() )</div><div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;          <span class="keywordflow">return</span>; <span class="comment">// no messages dir</span></div><div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;</div><div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;        std::list&lt;std::string&gt; messages;</div><div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;        <a class="code" href="namespacezypp_1_1filesystem.html#a424d384472de80e5cc48f5d5662cc859">filesystem::readdir</a>( messages, messagesDir, <span class="comment">/*dots*/</span><span class="keyword">false</span> );</div><div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;        <span class="keywordflow">if</span> ( messages.empty() )</div><div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;          <span class="keywordflow">return</span>; <span class="comment">// no messages in message dir</span></div><div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;</div><div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;        <span class="comment">// Now collect all matching messages in result and send them</span></div><div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;        <span class="comment">// - &quot;name-version-release&quot;</span></div><div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;        <span class="comment">// - &quot;name-version-release-*&quot;</span></div><div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;        HistoryLog historylog;</div><div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;        <a class="code" href="Easy_8h.html#a7887338b8a0727becb37d8061fcbfc0e">for_</a>( it, checkPackages_r.begin(), checkPackages_r.end() )</div><div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;        {</div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;          std::string prefix( <a class="code" href="group__ZYPP__SMART__PTR.html#ga9ffc8a01367e8a71d551ea8dbdc356f2">str::form</a>( <span class="stringliteral">&quot;%s-%s&quot;</span>, it-&gt;name().c_str(), it-&gt;edition().c_str() ) );</div><div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;          <a class="code" href="Easy_8h.html#a7887338b8a0727becb37d8061fcbfc0e">for_</a>( sit, messages.begin(), messages.end() )</div><div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;          {</div><div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;            <span class="keywordflow">if</span> ( ! <a class="code" href="namespacezypp_1_1str.html#a5e64cab973a815bfc5c3811b5086a2b9">str::hasPrefix</a>( *sit, prefix ) )</div><div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;              <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;</div><div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;            <span class="keywordflow">if</span> ( (*sit)[prefix.size()] != <span class="charliteral">&#39;\0&#39;</span> &amp;&amp; (*sit)[prefix.size()] != <span class="charliteral">&#39;-&#39;</span> )</div><div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;              <span class="keywordflow">continue</span>; <span class="comment">// if not exact match it had to continue with &#39;-&#39;</span></div><div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;</div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;            PathInfo message( messagesDir / *sit );</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;            <span class="keywordflow">if</span> ( ! message.isFile() || message.size() == 0 )</div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;              <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;</div><div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;            <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;Found update message &quot;</span> &lt;&lt; *sit &lt;&lt; endl;</div><div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;            Pathname localPath( messagesPath_r/(*sit) ); <span class="comment">// without root prefix</span></div><div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;            result_r.rUpdateMessages().push_back( UpdateNotificationFile( *it, localPath ) );</div><div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;            historylog.comment( str::Str() &lt;&lt; <a class="code" href="Gettext_8h.html#ad0ac7087c1804ce80118f897d7edd897">_</a>(<span class="stringliteral">&quot;New update message&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; localPath, <span class="comment">/*timestamp*/</span><span class="keyword">true</span> );</div><div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;          }</div><div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;        }</div><div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;        sendNotification( root_r, result_r.updateMessages() );</div><div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;      }</div><div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;</div><div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;    } <span class="comment">// namespace</span></div><div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00670"></a><span class="lineno"><a class="line" href="namespacezypp_1_1target.html#a39877703467da443328251ff5e4c240d">  670</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="namespacezypp_1_1target.html#a39877703467da443328251ff5e4c240d">XRunUpdateMessages</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp; root_r,</div><div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;                             <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp; messagesPath_r,</div><div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;                             <span class="keyword">const</span> std::vector&lt;sat::Solvable&gt; &amp; checkPackages_r,</div><div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;                             <a class="code" href="classzypp_1_1ZYppCommitResult.html">ZYppCommitResult</a> &amp; result_r )</div><div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;    { RunUpdateMessages( root_r, messagesPath_r, checkPackages_r, result_r ); }</div><div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;</div><div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;</div><div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;    <a class="code" href="ReferenceCounted_8h.html#ac9f70b359e11c09eca21d9c85e5d6eea">IMPL_PTR_TYPE</a>(TargetImpl);</div><div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;</div><div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;    <span class="comment">//</span></div><div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;    <span class="comment">//  METHOD NAME : TargetImpl::TargetImpl</span></div><div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;    <span class="comment">//  METHOD TYPE : Ctor</span></div><div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;    <span class="comment">//</span></div><div class="line"><a name="l00685"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#af388a979be6bb27830c8ad021194f2c2">  685</a></span>&#160;    TargetImpl::TargetImpl( <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp; root_r, <span class="keywordtype">bool</span> doRebuild_r )</div><div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;    : <a class="code" href="RepoManager_8cc.html#a6544f487e0f5c2fbf441f9e73b21df15">_root</a>( root_r )</div><div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;    , _requestedLocalesFile( home() / <span class="stringliteral">&quot;RequestedLocales&quot;</span> )</div><div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;    , _autoInstalledFile( home() / <span class="stringliteral">&quot;AutoInstalled&quot;</span> )</div><div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;    , _hardLocksFile( <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a>::assertprefix( <a class="code" href="RepoManager_8cc.html#a6544f487e0f5c2fbf441f9e73b21df15">_root</a>, <a class="code" href="classzypp_1_1ZConfig.html">ZConfig</a>::instance().locksFile() ) )</div><div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;    {</div><div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;      <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a68ceb59f98193242679509382b5cea9e">_rpm</a>.<a class="code" href="classzypp_1_1target_1_1rpm_1_1RpmDb.html#a51a9dd512308e5bab3834ebd9e3f3438">initDatabase</a>( root_r, <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a>(), doRebuild_r );</div><div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;</div><div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;      <a class="code" href="classzypp_1_1HistoryLog.html#a3cd0552d0a48692934226b234edeb3de">HistoryLog::setRoot</a>(<a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a399da7ab141cf4275c93e5064fb6f565">_root</a>);</div><div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;</div><div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;      <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a7b2a6d9f76ccecca46cd87cb3a4fa96f">createAnonymousId</a>();</div><div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;      sigMultiversionSpecChanged();     <span class="comment">// HACK: see sigMultiversionSpecChanged</span></div><div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;      <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;Initialized target on &quot;</span> &lt;&lt; <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a399da7ab141cf4275c93e5064fb6f565">_root</a> &lt;&lt; endl;</div><div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;    }</div><div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;</div><div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="namespacezypp_1_1target.html#aecd0329fa2bb775b904fe6ebc6393b1b">  703</a></span>&#160;    <span class="keyword">static</span> std::string <a class="code" href="namespacezypp_1_1target.html#aecd0329fa2bb775b904fe6ebc6393b1b">generateRandomId</a>()</div><div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;    {</div><div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;      std::ifstream uuidprovider( <span class="stringliteral">&quot;/proc/sys/kernel/random/uuid&quot;</span> );</div><div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="namespacezypp_1_1iostr.html#a9ebc01b7f87a5d078d0ac84d87407804">iostr::getline</a>( uuidprovider );</div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;    }</div><div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;</div><div class="line"><a name="l00714"></a><span class="lineno"><a class="line" href="namespacezypp_1_1target.html#a848c88b890e5199a9ce4755ab09657e8">  714</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="namespacezypp_1_1target.html#a848c88b890e5199a9ce4755ab09657e8">updateFileContent</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp;filename,</div><div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;                            boost::function&lt;<span class="keywordtype">bool</span> ()&gt; condition,</div><div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;                            boost::function&lt;<span class="keywordtype">string</span> ()&gt; value )</div><div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;    {</div><div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;        <span class="keywordtype">string</span> val = value();</div><div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;        <span class="comment">// if the value is empty, then just dont</span></div><div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;        <span class="comment">// do anything, regardless of the condition</span></div><div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;        <span class="keywordflow">if</span> ( val.empty() )</div><div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;            <span class="keywordflow">return</span>;</div><div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;</div><div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;        <span class="keywordflow">if</span> ( condition() )</div><div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;        {</div><div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;            <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;updating &#39;&quot;</span> &lt;&lt; filename &lt;&lt; <span class="stringliteral">&quot;&#39; content.&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;</div><div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;            <span class="comment">// if the file does not exist we need to generate the uuid file</span></div><div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;</div><div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;            std::ofstream filestr;</div><div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;            <span class="comment">// make sure the path exists</span></div><div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;            <a class="code" href="namespacezypp_1_1filesystem.html#abfb7f00fc9ec45c94eb35f789b980817">filesystem::assert_dir</a>( filename.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#a5cc68841952d6d462a1212119356da20">dirname</a>() );</div><div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;            filestr.open( filename.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#adf90bcfd5dad7bf694772a260d8749cf">c_str</a>() );</div><div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;</div><div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;            <span class="keywordflow">if</span> ( filestr.good() )</div><div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;            {</div><div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;                filestr &lt;&lt; val;</div><div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;                filestr.close();</div><div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;            }</div><div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;            <span class="keywordflow">else</span></div><div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;            {</div><div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;                <span class="comment">// FIXME, should we ignore the error?</span></div><div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;                <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(<a class="code" href="classzypp_1_1Exception.html">Exception</a>(<span class="stringliteral">&quot;Can&#39;t openfile &#39;&quot;</span> + filename.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#a91a822e47df9fa6f484a7b771a0b3c94">asString</a>() + <span class="stringliteral">&quot;&#39; for writing&quot;</span>));</div><div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;            }</div><div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;        }</div><div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;    }</div><div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;</div><div class="line"><a name="l00749"></a><span class="lineno"><a class="line" href="namespacezypp_1_1target.html#ab0730e3a9d83b309b57c03bcdd53c81f">  749</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="namespacezypp_1_1target.html#ab0730e3a9d83b309b57c03bcdd53c81f">fileMissing</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp;pathname )</div><div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;    {</div><div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;        <span class="keywordflow">return</span> ! <a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html">PathInfo</a>(pathname).<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#abb1afbf5ddd0392d0d0abc25577347d3">isExist</a>();</div><div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;    }</div><div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;</div><div class="line"><a name="l00754"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#a7b2a6d9f76ccecca46cd87cb3a4fa96f">  754</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a7b2a6d9f76ccecca46cd87cb3a4fa96f">TargetImpl::createAnonymousId</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;<span class="keyword">    </span>{</div><div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;      <span class="comment">// bsc#1024741: Omit creating a new uid for chrooted systems (if it already has one, fine)</span></div><div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;      <span class="keywordflow">if</span> ( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a9aab7cfcffbd677912a3a1ba15b670c2">root</a>() != <span class="stringliteral">&quot;/&quot;</span> )</div><div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;</div><div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;      <span class="comment">// Create the anonymous unique id, used for download statistics</span></div><div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;      <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> idpath( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#ad12090f70667f900edbb3ea69eb1f6d2">home</a>() / <span class="stringliteral">&quot;AnonymousUniqueId&quot;</span>);</div><div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;</div><div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;      <span class="keywordflow">try</span></div><div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;      {</div><div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;        <a class="code" href="namespacezypp_1_1target.html#a848c88b890e5199a9ce4755ab09657e8">updateFileContent</a>( idpath,</div><div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;                           boost::bind(<a class="code" href="namespacezypp_1_1target.html#ab0730e3a9d83b309b57c03bcdd53c81f">fileMissing</a>, idpath),</div><div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;                           <a class="code" href="namespacezypp_1_1target.html#aecd0329fa2bb775b904fe6ebc6393b1b">generateRandomId</a> );</div><div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;      }</div><div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;      <span class="keywordflow">catch</span> ( <span class="keyword">const</span> <a class="code" href="classzypp_1_1Exception.html">Exception</a> &amp;e )</div><div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;      {</div><div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;        <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> &lt;&lt; <span class="stringliteral">&quot;Can&#39;t create anonymous id file&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;      }</div><div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;</div><div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;    }</div><div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;</div><div class="line"><a name="l00776"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#a42e512f9b715fcb08d1211ce62c53fcf">  776</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a42e512f9b715fcb08d1211ce62c53fcf">TargetImpl::createLastDistributionFlavorCache</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;<span class="keyword">    </span>{</div><div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;      <span class="comment">// create the anonymous unique id</span></div><div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;      <span class="comment">// this value is used for statistics</span></div><div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;      <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> flavorpath( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#ad12090f70667f900edbb3ea69eb1f6d2">home</a>() / <span class="stringliteral">&quot;LastDistributionFlavor&quot;</span>);</div><div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;</div><div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;      <span class="comment">// is there a product</span></div><div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;      <a class="code" href="classzypp_1_1Product.html#a28765039103a7e307d2f0670983849ed">Product::constPtr</a> p = <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a90899160b17dad09ecee7cc7d1a3d46c">baseProduct</a>();</div><div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;      <span class="keywordflow">if</span> ( ! p )</div><div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;      {</div><div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;          <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> &lt;&lt; <span class="stringliteral">&quot;No base product, I won&#39;t create flavor cache&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;          <span class="keywordflow">return</span>;</div><div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;      }</div><div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;</div><div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;      <span class="keywordtype">string</span> flavor = p-&gt;flavor();</div><div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;</div><div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;      <span class="keywordflow">try</span></div><div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;      {</div><div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;</div><div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;        <a class="code" href="namespacezypp_1_1target.html#a848c88b890e5199a9ce4755ab09657e8">updateFileContent</a>( flavorpath,</div><div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;                           <span class="comment">// only if flavor is not empty</span></div><div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;                           <a class="code" href="structzypp_1_1functor_1_1Constant.html">functor::Constant&lt;bool&gt;</a>( ! flavor.empty() ),</div><div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;                           <a class="code" href="structzypp_1_1functor_1_1Constant.html">functor::Constant&lt;string&gt;</a>(flavor) );</div><div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;      }</div><div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;      <span class="keywordflow">catch</span> ( <span class="keyword">const</span> <a class="code" href="classzypp_1_1Exception.html">Exception</a> &amp;e )</div><div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;      {</div><div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;        <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> &lt;&lt; <span class="stringliteral">&quot;Can&#39;t create flavor cache&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;      }</div><div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;    }</div><div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;</div><div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;    <span class="comment">//</span></div><div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;    <span class="comment">//  METHOD NAME : TargetImpl::~TargetImpl</span></div><div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;    <span class="comment">//  METHOD TYPE : Dtor</span></div><div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;    <span class="comment">//</span></div><div class="line"><a name="l00812"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#a96718d89ab3c77db23a20c0c0257d387">  812</a></span>&#160;    <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a96718d89ab3c77db23a20c0c0257d387">TargetImpl::~TargetImpl</a>()</div><div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;    {</div><div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;      <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a68ceb59f98193242679509382b5cea9e">_rpm</a>.<a class="code" href="classzypp_1_1target_1_1rpm_1_1RpmDb.html#aa08e063822aad5bd9af634374bab6be4">closeDatabase</a>();</div><div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;      sigMultiversionSpecChanged();     <span class="comment">// HACK: see sigMultiversionSpecChanged</span></div><div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;      <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;Targets closed&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;    }</div><div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;</div><div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;    <span class="comment">//</span></div><div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;    <span class="comment">// solv file handling</span></div><div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;    <span class="comment">//</span></div><div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00825"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#ad7e574d454002f7956fd5fe9086d2c42">  825</a></span>&#160;    <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#ad7e574d454002f7956fd5fe9086d2c42">TargetImpl::defaultSolvfilesPath</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;<span class="keyword">    </span>{</div><div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#ab2800733207f240280f2fd82b52ba4b2">Pathname::assertprefix</a>( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a399da7ab141cf4275c93e5064fb6f565">_root</a>, <a class="code" href="classzypp_1_1ZConfig.html#a9b986f2c40a1aa9e1a2aea3d299210d1">ZConfig::instance</a>().repoSolvfilesPath() / <a class="code" href="classzypp_1_1sat_1_1Pool.html#aacf0eaeb5c1f2dbe59254df82840dd9a">sat::Pool::instance</a>().systemRepoAlias() );</div><div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;    }</div><div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;</div><div class="line"><a name="l00830"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#a08f984480583f7f2cdbea598340f6676">  830</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a08f984480583f7f2cdbea598340f6676">TargetImpl::clearCache</a>()</div><div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;    {</div><div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;      <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> base = <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a74aa62375f34ea1e963cdf4b101f3d77">solvfilesPath</a>();</div><div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;      <a class="code" href="namespacezypp_1_1filesystem.html#a72db515ee4c999779798712405ed25e6">filesystem::recursive_rmdir</a>( base );</div><div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;    }</div><div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;</div><div class="line"><a name="l00836"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#a7222390264247de9131baeb887274adf">  836</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a7222390264247de9131baeb887274adf">TargetImpl::buildCache</a>()</div><div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;    {</div><div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;      <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> base = <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a74aa62375f34ea1e963cdf4b101f3d77">solvfilesPath</a>();</div><div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;      <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> rpmsolv       = base/<span class="stringliteral">&quot;solv&quot;</span>;</div><div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;      <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> rpmsolvcookie = base/<span class="stringliteral">&quot;cookie&quot;</span>;</div><div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;</div><div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;      <span class="keywordtype">bool</span> build_rpm_solv = <span class="keyword">true</span>;</div><div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;      <span class="comment">// lets see if the rpm solv cache exists</span></div><div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;</div><div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;      <a class="code" href="classzypp_1_1RepoStatus.html">RepoStatus</a> rpmstatus( <a class="code" href="classzypp_1_1RepoStatus.html">RepoStatus</a>(<a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a399da7ab141cf4275c93e5064fb6f565">_root</a>/<span class="stringliteral">&quot;var/lib/rpm/Name&quot;</span>) &amp;&amp; <a class="code" href="classzypp_1_1RepoStatus.html">RepoStatus</a>(<a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a399da7ab141cf4275c93e5064fb6f565">_root</a>/<span class="stringliteral">&quot;etc/products.d&quot;</span>) );</div><div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;</div><div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;      <span class="keywordtype">bool</span> solvexisted = <a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html">PathInfo</a>(rpmsolv).<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#abb1afbf5ddd0392d0d0abc25577347d3">isExist</a>();</div><div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;      <span class="keywordflow">if</span> ( solvexisted )</div><div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;      {</div><div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;        <span class="comment">// see the status of the cache</span></div><div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;        <a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html">PathInfo</a> cookie( rpmsolvcookie );</div><div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;        <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;Read cookie: &quot;</span> &lt;&lt; cookie &lt;&lt; endl;</div><div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;        <span class="keywordflow">if</span> ( cookie.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#abb1afbf5ddd0392d0d0abc25577347d3">isExist</a>() )</div><div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;        {</div><div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;          <a class="code" href="classzypp_1_1RepoStatus.html">RepoStatus</a> status = <a class="code" href="classzypp_1_1RepoStatus.html#a177c96a017131ed01b64cb477e9f3d64">RepoStatus::fromCookieFile</a>(rpmsolvcookie);</div><div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;          <span class="comment">// now compare it with the rpm database</span></div><div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;          <span class="keywordflow">if</span> ( status == rpmstatus )</div><div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;            build_rpm_solv = <span class="keyword">false</span>;</div><div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;          <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;Read cookie: &quot;</span> &lt;&lt; rpmsolvcookie &lt;&lt; <span class="stringliteral">&quot; says: &quot;</span></div><div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;          &lt;&lt; (build_rpm_solv ? <span class="stringliteral">&quot;outdated&quot;</span> : <span class="stringliteral">&quot;uptodate&quot;</span>) &lt;&lt; endl;</div><div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160;        }</div><div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;      }</div><div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;</div><div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;      <span class="keywordflow">if</span> ( build_rpm_solv )</div><div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;      {</div><div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;        <span class="comment">// if the solvfile dir does not exist yet, we better create it</span></div><div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;        <a class="code" href="namespacezypp_1_1filesystem.html#abfb7f00fc9ec45c94eb35f789b980817">filesystem::assert_dir</a>( base );</div><div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;</div><div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;        <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> oldSolvFile( solvexisted ? rpmsolv : <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a>() ); <span class="comment">// to speedup rpmdb2solv</span></div><div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;</div><div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160;        <a class="code" href="classzypp_1_1filesystem_1_1TmpFile.html">filesystem::TmpFile</a> tmpsolv( <a class="code" href="classzypp_1_1filesystem_1_1TmpFile.html#a8c556348853d60f1b4868548275cebe6">filesystem::TmpFile::makeSibling</a>( rpmsolv ) );</div><div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;        <span class="keywordflow">if</span> ( !tmpsolv )</div><div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;        {</div><div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;          <span class="comment">// Can&#39;t create temporary solv file, usually due to insufficient permission</span></div><div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;          <span class="comment">// (user query while @System solv needs refresh). If so, try switching</span></div><div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;          <span class="comment">// to a location within zypps temp. space (will be cleaned at application end).</span></div><div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;</div><div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;          <span class="keywordtype">bool</span> switchingToTmpSolvfile = <span class="keyword">false</span>;</div><div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;          <a class="code" href="classzypp_1_1Exception.html">Exception</a> ex(<span class="stringliteral">&quot;Failed to cache rpm database.&quot;</span>);</div><div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;          ex.<a class="code" href="classzypp_1_1Exception.html#af6a5a1a9527e907e19bd94d61e0dc2be">remember</a>(<a class="code" href="group__ZYPP__SMART__PTR.html#ga9ffc8a01367e8a71d551ea8dbdc356f2">str::form</a>(<span class="stringliteral">&quot;Cannot create temporary file under %s.&quot;</span>, base.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#adf90bcfd5dad7bf694772a260d8749cf">c_str</a>()));</div><div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;</div><div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;          <span class="keywordflow">if</span> ( ! <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#af49b823d86f36816e3c30bff95ec1267">solvfilesPathIsTemp</a>() )</div><div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;          {</div><div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;            base = getZYpp()-&gt;tmpPath() / <a class="code" href="classzypp_1_1sat_1_1Pool.html#aacf0eaeb5c1f2dbe59254df82840dd9a">sat::Pool::instance</a>().<a class="code" href="classzypp_1_1sat_1_1Pool.html#ab7fbc24443322c64e0c9d6d6c9e4b8dc">systemRepoAlias</a>();</div><div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;            rpmsolv       = base/<span class="stringliteral">&quot;solv&quot;</span>;</div><div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;            rpmsolvcookie = base/<span class="stringliteral">&quot;cookie&quot;</span>;</div><div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;</div><div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;            <a class="code" href="namespacezypp_1_1filesystem.html#abfb7f00fc9ec45c94eb35f789b980817">filesystem::assert_dir</a>( base );</div><div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;            tmpsolv = <a class="code" href="classzypp_1_1filesystem_1_1TmpFile.html#a8c556348853d60f1b4868548275cebe6">filesystem::TmpFile::makeSibling</a>( rpmsolv );</div><div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;</div><div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;            <span class="keywordflow">if</span> ( tmpsolv )</div><div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;            {</div><div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;              <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> &lt;&lt; <span class="stringliteral">&quot;Using a temporary solv file at &quot;</span> &lt;&lt; base &lt;&lt; endl;</div><div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;              switchingToTmpSolvfile = <span class="keyword">true</span>;</div><div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;              <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a54ae75c82d2dcc5a8e241a98b2f9d853">_tmpSolvfilesPath</a> = base;</div><div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;            }</div><div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;            <span class="keywordflow">else</span></div><div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;            {</div><div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;              ex.<a class="code" href="classzypp_1_1Exception.html#af6a5a1a9527e907e19bd94d61e0dc2be">remember</a>(<a class="code" href="group__ZYPP__SMART__PTR.html#ga9ffc8a01367e8a71d551ea8dbdc356f2">str::form</a>(<span class="stringliteral">&quot;Cannot create temporary file under %s.&quot;</span>, base.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#adf90bcfd5dad7bf694772a260d8749cf">c_str</a>()));</div><div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;            }</div><div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;          }</div><div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;</div><div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;          <span class="keywordflow">if</span> ( ! switchingToTmpSolvfile )</div><div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;          {</div><div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;            <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(ex);</div><div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;          }</div><div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;        }</div><div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;</div><div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;        <span class="comment">// Take care we unlink the solvfile on exception</span></div><div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;        <a class="code" href="classzypp_1_1AutoDispose.html">ManagedFile</a> guard( base, <a class="code" href="namespacezypp_1_1filesystem.html#a72db515ee4c999779798712405ed25e6">filesystem::recursive_rmdir</a> );</div><div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;</div><div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;        <a class="code" href="classzypp_1_1ExternalProgram.html#a569290605b69ca72af7d274b507394b6">ExternalProgram::Arguments</a> cmd;</div><div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;        cmd.push_back( <span class="stringliteral">&quot;rpmdb2solv&quot;</span> );</div><div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;        <span class="keywordflow">if</span> ( ! <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a399da7ab141cf4275c93e5064fb6f565">_root</a>.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#aaf4388add8c0f9294a7b15f0614f7656">empty</a>() ) {</div><div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;          cmd.push_back( <span class="stringliteral">&quot;-r&quot;</span> );</div><div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;          cmd.push_back( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a399da7ab141cf4275c93e5064fb6f565">_root</a>.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#a91a822e47df9fa6f484a7b771a0b3c94">asString</a>() );</div><div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;        }</div><div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;        cmd.push_back( <span class="stringliteral">&quot;-X&quot;</span> );  <span class="comment">// autogenerate pattern/product/... from -package</span></div><div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;        <span class="comment">// bsc#1104415: no more application support // cmd.push_back( &quot;-A&quot; );   // autogenerate application pseudo packages</span></div><div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;        cmd.push_back( <span class="stringliteral">&quot;-p&quot;</span> );</div><div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;        cmd.push_back( <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#ab2800733207f240280f2fd82b52ba4b2">Pathname::assertprefix</a>( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a399da7ab141cf4275c93e5064fb6f565">_root</a>, <span class="stringliteral">&quot;/etc/products.d&quot;</span> ).<a class="code" href="namespacezypp.html#a1547a676c9d1f206e0ed614d42d74c2d">asString</a>() );</div><div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;</div><div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;        <span class="keywordflow">if</span> ( ! oldSolvFile.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#aaf4388add8c0f9294a7b15f0614f7656">empty</a>() )</div><div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;          cmd.push_back( oldSolvFile.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#a91a822e47df9fa6f484a7b771a0b3c94">asString</a>() );</div><div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;</div><div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;        cmd.push_back( <span class="stringliteral">&quot;-o&quot;</span> );</div><div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;        cmd.push_back( tmpsolv.<a class="code" href="classzypp_1_1filesystem_1_1TmpPath.html#a6891667fdbc2f2aa70a5f97c66422786">path</a>().<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#a91a822e47df9fa6f484a7b771a0b3c94">asString</a>() );</div><div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;</div><div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;        <a class="code" href="classzypp_1_1ExternalProgram.html">ExternalProgram</a> prog( cmd, <a class="code" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65baaaba72a64b32a67070ba03a24f0d3d6b0">ExternalProgram::Stderr_To_Stdout</a> );</div><div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;        std::string errdetail;</div><div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;</div><div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;        <span class="keywordflow">for</span> ( std::string output( prog.<a class="code" href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#a8211df39b7e79e32164f6a4d32fd513d">receiveLine</a>() ); output.length(); output = prog.<a class="code" href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#a8211df39b7e79e32164f6a4d32fd513d">receiveLine</a>() ) {</div><div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;          <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> &lt;&lt; <span class="stringliteral">&quot;  &quot;</span> &lt;&lt; output;</div><div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;          <span class="keywordflow">if</span> ( errdetail.empty() ) {</div><div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;            errdetail = prog.<a class="code" href="classzypp_1_1ExternalProgram.html#ae0369899f0c0f36b68f6001704b90486">command</a>();</div><div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;            errdetail += <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;          }</div><div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;          errdetail += output;</div><div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;        }</div><div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;</div><div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;        <span class="keywordtype">int</span> ret = prog.<a class="code" href="classzypp_1_1ExternalProgram.html#ac72fa79ccdbaa0f7fc9560b291dd4216">close</a>();</div><div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;        <span class="keywordflow">if</span> ( ret != 0 )</div><div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;        {</div><div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;          <a class="code" href="classzypp_1_1Exception.html">Exception</a> ex(<a class="code" href="group__ZYPP__SMART__PTR.html#ga9ffc8a01367e8a71d551ea8dbdc356f2">str::form</a>(<span class="stringliteral">&quot;Failed to cache rpm database (%d).&quot;</span>, ret));</div><div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;          ex.<a class="code" href="classzypp_1_1Exception.html#af6a5a1a9527e907e19bd94d61e0dc2be">remember</a>( errdetail );</div><div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;          <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(ex);</div><div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;        }</div><div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;</div><div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;        ret = <a class="code" href="namespacezypp_1_1filesystem.html#a4e57629fa9576b7599b1165a2bd293e3">filesystem::rename</a>( tmpsolv, rpmsolv );</div><div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;        <span class="keywordflow">if</span> ( ret != 0 )</div><div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;          <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(<a class="code" href="classzypp_1_1Exception.html">Exception</a>(<span class="stringliteral">&quot;Failed to move cache to final destination&quot;</span>));</div><div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;        <span class="comment">// if this fails, don&#39;t bother throwing exceptions</span></div><div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;        <a class="code" href="namespacezypp_1_1filesystem.html#a15c6f1f768ee1e92f580f2ffec15161f">filesystem::chmod</a>( rpmsolv, 0644 );</div><div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;</div><div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;        rpmstatus.<a class="code" href="classzypp_1_1RepoStatus.html#abd845710e9a452df66c1b4ff0361f458">saveToCookieFile</a>(rpmsolvcookie);</div><div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;</div><div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;        <span class="comment">// We keep it.</span></div><div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;        guard.<a class="code" href="classzypp_1_1AutoDispose.html#a521dbb5b910cd99a33850c12de8987d5">resetDispose</a>();</div><div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;        <a class="code" href="namespacezypp_1_1sat.html#ad45df5cf58daa413e6e443b45f0713a8">sat::updateSolvFileIndex</a>( rpmsolv );    <span class="comment">// content digest for zypper bash completion</span></div><div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;</div><div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;        <span class="comment">// system-hook: Finally send notification to plugins</span></div><div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;        <span class="keywordflow">if</span> ( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a9aab7cfcffbd677912a3a1ba15b670c2">root</a>() == <span class="stringliteral">&quot;/&quot;</span> )</div><div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;        {</div><div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;          <a class="code" href="classzypp_1_1PluginExecutor.html">PluginExecutor</a> plugins;</div><div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;          plugins.<a class="code" href="classzypp_1_1PluginExecutor.html#a7e37b4a7bc1c2e7770d2f547efe01598">load</a>( <a class="code" href="classzypp_1_1ZConfig.html#a9b986f2c40a1aa9e1a2aea3d299210d1">ZConfig::instance</a>().pluginsPath()/<span class="stringliteral">&quot;system&quot;</span> );</div><div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;          <span class="keywordflow">if</span> ( plugins )</div><div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;            plugins.<a class="code" href="classzypp_1_1PluginExecutor.html#ab337837061a8ef89198eafb92cac59b9">send</a>( <a class="code" href="classzypp_1_1PluginFrame.html">PluginFrame</a>( <span class="stringliteral">&quot;PACKAGESETCHANGED&quot;</span> ) );</div><div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;        }</div><div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;      }</div><div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;      <span class="keywordflow">else</span></div><div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;      {</div><div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;        <span class="comment">// On the fly add missing solv.idx files for bash completion.</span></div><div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;        <span class="keywordflow">if</span> ( ! <a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html">PathInfo</a>(base/<span class="stringliteral">&quot;solv.idx&quot;</span>).isExist() )</div><div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;          <a class="code" href="namespacezypp_1_1sat.html#ad45df5cf58daa413e6e443b45f0713a8">sat::updateSolvFileIndex</a>( rpmsolv );</div><div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;      }</div><div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;      <span class="keywordflow">return</span> build_rpm_solv;</div><div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;    }</div><div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;</div><div class="line"><a name="l00979"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#ac05bc7ce03b8229922c1b6db19821b81">  979</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#ac05bc7ce03b8229922c1b6db19821b81">TargetImpl::reload</a>()</div><div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;    {</div><div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;        <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#ab22acb5f2c38cf23d371d1a9a5862407">load</a>( <span class="keyword">false</span> );</div><div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;    }</div><div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;</div><div class="line"><a name="l00984"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#a7d1699664a13a84ff6dc2544c949e64e">  984</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a7d1699664a13a84ff6dc2544c949e64e">TargetImpl::unload</a>()</div><div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;    {</div><div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;      <a class="code" href="classzypp_1_1Repository.html">Repository</a> system( <a class="code" href="classzypp_1_1sat_1_1Pool.html#aacf0eaeb5c1f2dbe59254df82840dd9a">sat::Pool::instance</a>().findSystemRepo() );</div><div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;      <span class="keywordflow">if</span> ( system )</div><div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;        system.<a class="code" href="classzypp_1_1Repository.html#af687417766f13436374cef99e8574a22">eraseFromPool</a>();</div><div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;    }</div><div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;</div><div class="line"><a name="l00991"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#ab22acb5f2c38cf23d371d1a9a5862407">  991</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#ab22acb5f2c38cf23d371d1a9a5862407">TargetImpl::load</a>( <span class="keywordtype">bool</span> force )</div><div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;    {</div><div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;      <span class="keywordtype">bool</span> newCache = <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a7222390264247de9131baeb887274adf">buildCache</a>();</div><div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;      <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;New cache built: &quot;</span> &lt;&lt; (newCache?<span class="stringliteral">&quot;true&quot;</span>:<span class="stringliteral">&quot;false&quot;</span>) &lt;&lt;</div><div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;        <span class="stringliteral">&quot;, force loading: &quot;</span> &lt;&lt; (force?<span class="stringliteral">&quot;true&quot;</span>:<span class="stringliteral">&quot;false&quot;</span>) &lt;&lt; endl;</div><div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;</div><div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;      <span class="comment">// now add the repos to the pool</span></div><div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;      <a class="code" href="classzypp_1_1sat_1_1Pool.html">sat::Pool</a> satpool( <a class="code" href="classzypp_1_1sat_1_1Pool.html#aacf0eaeb5c1f2dbe59254df82840dd9a">sat::Pool::instance</a>() );</div><div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;      <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> rpmsolv( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a74aa62375f34ea1e963cdf4b101f3d77">solvfilesPath</a>() / <span class="stringliteral">&quot;solv&quot;</span> );</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;      <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;adding &quot;</span> &lt;&lt; rpmsolv &lt;&lt; <span class="stringliteral">&quot; to pool(&quot;</span> &lt;&lt; satpool.<a class="code" href="classzypp_1_1sat_1_1Pool.html#ab7fbc24443322c64e0c9d6d6c9e4b8dc">systemRepoAlias</a>() &lt;&lt; <span class="stringliteral">&quot;)&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;      <span class="comment">// Providing an empty system repo, unload any old content</span></div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;      <a class="code" href="classzypp_1_1Repository.html">Repository</a> system( <a class="code" href="classzypp_1_1sat_1_1Pool.html#aacf0eaeb5c1f2dbe59254df82840dd9a">sat::Pool::instance</a>().findSystemRepo() );</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;      <span class="keywordflow">if</span> ( system &amp;&amp; ! system.<a class="code" href="classzypp_1_1Repository.html#a4cd4e7ece7a0638875d8ead059066630">solvablesEmpty</a>() )</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;      {</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;        <span class="keywordflow">if</span> ( newCache || force )</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;        {</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;          system.<a class="code" href="classzypp_1_1Repository.html#af687417766f13436374cef99e8574a22">eraseFromPool</a>(); <span class="comment">// invalidates system</span></div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;        }</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;        {</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;          <span class="keywordflow">return</span>;     <span class="comment">// nothing to do</span></div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;        }</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;      }</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;      <span class="keywordflow">if</span> ( ! system )</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;      {</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;        system = satpool.<a class="code" href="classzypp_1_1sat_1_1Pool.html#aebbc9780cd7f329473f85fa56904ff08">systemRepo</a>();</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;      }</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;      <span class="keywordflow">try</span></div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;      {</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;        <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;adding &quot;</span> &lt;&lt; rpmsolv &lt;&lt; <span class="stringliteral">&quot; to system&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;        system.<a class="code" href="classzypp_1_1Repository.html#ab624346b583a6b020e08b568cd6f1765">addSolv</a>( rpmsolv );</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;      }</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;      <span class="keywordflow">catch</span> ( <span class="keyword">const</span> <a class="code" href="classzypp_1_1Exception.html">Exception</a> &amp; exp )</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;      {</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;        <a class="code" href="group__ZYPP__THROW.html#ga0a6d828c3e5802c5ca1ab6f5a86e9fc1">ZYPP_CAUGHT</a>( exp );</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;        <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;Try to handle exception by rebuilding the solv-file&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;        <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a08f984480583f7f2cdbea598340f6676">clearCache</a>();</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;        <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a7222390264247de9131baeb887274adf">buildCache</a>();</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;        system.<a class="code" href="classzypp_1_1Repository.html#ab624346b583a6b020e08b568cd6f1765">addSolv</a>( rpmsolv );</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;      }</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;      satpool.<a class="code" href="classzypp_1_1sat_1_1Pool.html#a70097973bcf9fa646b66269438716604">rootDir</a>( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a399da7ab141cf4275c93e5064fb6f565">_root</a> );</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;      <span class="comment">// (Re)Load the requested locales et al.</span></div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;      <span class="comment">// If the requested locales are empty, we leave the pool untouched</span></div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;      <span class="comment">// to avoid undoing changes the application applied. We expect this</span></div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;      <span class="comment">// to happen on a bare metal installation only. An already existing</span></div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;      <span class="comment">// target should be loaded before its settings are changed.</span></div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;      {</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;        <span class="keyword">const</span> <a class="code" href="namespacezypp.html#a7f4c013fbe3bd2619b780e06c2c36c20">LocaleSet</a> &amp; <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a2cc91213b6f96f661c70d2f2fd1608ca">requestedLocales</a>( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a421d883d6623b83dfeb6961c8cecfb24">_requestedLocalesFile</a>.<a class="code" href="classzypp_1_1target_1_1RequestedLocalesFile.html#ad82a939768f8940ffe3edadd7b2e0ae8">locales</a>() );</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;        <span class="keywordflow">if</span> ( ! <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a2cc91213b6f96f661c70d2f2fd1608ca">requestedLocales</a>.empty() )</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;        {</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;          satpool.<a class="code" href="classzypp_1_1sat_1_1Pool.html#af2e328e862f21a3b5e2b8ff01dea197e">initRequestedLocales</a>( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a2cc91213b6f96f661c70d2f2fd1608ca">requestedLocales</a> );</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;        }</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;      }</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;      {</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;        <span class="keywordflow">if</span> ( ! <a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html">PathInfo</a>( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a8632dcaa02cfda22800c0a4a1920e643">_autoInstalledFile</a>.<a class="code" href="classzypp_1_1target_1_1SolvIdentFile.html#a527c1b6ef4fdf804a82c6b103634b41d">file</a>() ).isExist() )</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;        {</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;          <span class="comment">// Initialize from history, if it does not exist</span></div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;          <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> historyFile( <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#ab2800733207f240280f2fd82b52ba4b2">Pathname::assertprefix</a>( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a399da7ab141cf4275c93e5064fb6f565">_root</a>, <a class="code" href="classzypp_1_1ZConfig.html#a9b986f2c40a1aa9e1a2aea3d299210d1">ZConfig::instance</a>().historyLogFile() ) );</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;          <span class="keywordflow">if</span> ( <a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html">PathInfo</a>( historyFile ).isExist() )</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;          {</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;            <a class="code" href="classzypp_1_1target_1_1SolvIdentFile.html#ac3b4d2f79a1c969d8b4c50b23c173878">SolvIdentFile::Data</a> onSystemByUser( getUserInstalledFromHistory( historyFile ) );</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;            <a class="code" href="classzypp_1_1target_1_1SolvIdentFile.html#ac3b4d2f79a1c969d8b4c50b23c173878">SolvIdentFile::Data</a> onSystemByAuto;</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;            <a class="code" href="Easy_8h.html#a7887338b8a0727becb37d8061fcbfc0e">for_</a>( it, system.<a class="code" href="classzypp_1_1Repository.html#a85d00f37ad6abddd6545ca3c43fe2aa0">solvablesBegin</a>(), system.<a class="code" href="classzypp_1_1Repository.html#a61aa22071f64af781a30bb33bd876728">solvablesEnd</a>() )</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;            {</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;              <a class="code" href="classzypp_1_1IdString.html">IdString</a> ident( (*it).ident() );</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;              <span class="keywordflow">if</span> ( onSystemByUser.find( ident ) == onSystemByUser.end() )</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;                onSystemByAuto.insert( ident );</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;            }</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;            <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a8632dcaa02cfda22800c0a4a1920e643">_autoInstalledFile</a>.<a class="code" href="classzypp_1_1target_1_1SolvIdentFile.html#ad6d892a227b69327bd176dd061c14a4b">setData</a>( onSystemByAuto );</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;          }</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;          <span class="comment">// on the fly removed any obsolete SoftLocks file</span></div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;          <a class="code" href="namespacezypp_1_1filesystem.html#a4c64d87548a31ac2d33c378075dd6a12">filesystem::unlink</a>( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#ad12090f70667f900edbb3ea69eb1f6d2">home</a>() / <span class="stringliteral">&quot;SoftLocks&quot;</span> );</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;        }</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;        <span class="comment">// read from AutoInstalled file</span></div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;        <a class="code" href="classzypp_1_1sat_1_1Queue.html">sat::StringQueue</a> q;</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;        <span class="keywordflow">for</span> ( <span class="keyword">const</span> <span class="keyword">auto</span> &amp; <a class="code" href="Pool_8cc.html#a6fa95b1480497f007426f23fa2dbc23f">idstr</a> : <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a8632dcaa02cfda22800c0a4a1920e643">_autoInstalledFile</a>.<a class="code" href="classzypp_1_1target_1_1SolvIdentFile.html#acacb56c5b0bce5a31142fd8fe23a50db">data</a>() )</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;          q.<a class="code" href="classzypp_1_1sat_1_1Queue.html#ae2c07f4d37276d479125f12b0789e221">push</a>( <a class="code" href="Pool_8cc.html#a6fa95b1480497f007426f23fa2dbc23f">idstr</a>.id() );</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;        satpool.<a class="code" href="classzypp_1_1sat_1_1Pool.html#a3808298913ad7c27d661a8f7748bd3d5">setAutoInstalled</a>( q );</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;      }</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;      <span class="comment">//load the packages that will trigger the update flag being set</span></div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;      {</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;        <a class="code" href="classzypp_1_1sat_1_1Queue.html">sat::StringQueue</a> q;</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;        <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">filesystem::Pathname</a> needRebootFile { <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#ab2800733207f240280f2fd82b52ba4b2">Pathname::assertprefix</a>( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a9aab7cfcffbd677912a3a1ba15b670c2">root</a>(), <a class="code" href="classzypp_1_1ZConfig.html#a9b986f2c40a1aa9e1a2aea3d299210d1">ZConfig::instance</a>().needrebootFile() ) };</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;        <span class="keywordflow">if</span> ( <a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html">filesystem::PathInfo</a> ( needRebootFile ).isExist() ) {</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;          <a class="code" href="classzypp_1_1target_1_1SolvIdentFile.html">SolvIdentFile</a> file ( needRebootFile );</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;          <span class="keywordflow">for</span> ( <span class="keyword">const</span> <span class="keyword">auto</span> &amp; <a class="code" href="Pool_8cc.html#a6fa95b1480497f007426f23fa2dbc23f">idstr</a> : file.<a class="code" href="classzypp_1_1target_1_1SolvIdentFile.html#acacb56c5b0bce5a31142fd8fe23a50db">data</a>() ) {</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;            q.<a class="code" href="classzypp_1_1sat_1_1Queue.html#ae2c07f4d37276d479125f12b0789e221">push</a>( <a class="code" href="Pool_8cc.html#a6fa95b1480497f007426f23fa2dbc23f">idstr</a>.id() );</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;          }</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;<span class="preprocessor">#if 1</span></div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;<span class="preprocessor">#warning Hotfix: temp workaround missing SolvableSpec Parser</span></div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;          <span class="comment">// Also consider excluding .rpmnew/.rpmsave/.rpmorig files in needreboot.d</span></div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;          q.<a class="code" href="classzypp_1_1sat_1_1Queue.html#ae2c07f4d37276d479125f12b0789e221">push</a>( <a class="code" href="classzypp_1_1IdString.html">IdString</a>(<span class="stringliteral">&quot;kernel-azure&quot;</span>).<span class="keywordtype">id</span>() );</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;          q.<a class="code" href="classzypp_1_1sat_1_1Queue.html#ae2c07f4d37276d479125f12b0789e221">push</a>( <a class="code" href="classzypp_1_1IdString.html">IdString</a>(<span class="stringliteral">&quot;kernel-azure-base&quot;</span>).<span class="keywordtype">id</span>() );</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;          q.<a class="code" href="classzypp_1_1sat_1_1Queue.html#ae2c07f4d37276d479125f12b0789e221">push</a>( <a class="code" href="classzypp_1_1IdString.html">IdString</a>(<span class="stringliteral">&quot;kernel-debug&quot;</span>).<span class="keywordtype">id</span>() );</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;          q.<a class="code" href="classzypp_1_1sat_1_1Queue.html#ae2c07f4d37276d479125f12b0789e221">push</a>( <a class="code" href="classzypp_1_1IdString.html">IdString</a>(<span class="stringliteral">&quot;kernel-debug-base&quot;</span>).<span class="keywordtype">id</span>() );</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;          q.<a class="code" href="classzypp_1_1sat_1_1Queue.html#ae2c07f4d37276d479125f12b0789e221">push</a>( <a class="code" href="classzypp_1_1IdString.html">IdString</a>(<span class="stringliteral">&quot;kernel-default&quot;</span>).<span class="keywordtype">id</span>() );</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;          q.<a class="code" href="classzypp_1_1sat_1_1Queue.html#ae2c07f4d37276d479125f12b0789e221">push</a>( <a class="code" href="classzypp_1_1IdString.html">IdString</a>(<span class="stringliteral">&quot;kernel-default-base&quot;</span>).<span class="keywordtype">id</span>() );</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;          q.<a class="code" href="classzypp_1_1sat_1_1Queue.html#ae2c07f4d37276d479125f12b0789e221">push</a>( <a class="code" href="classzypp_1_1IdString.html">IdString</a>(<span class="stringliteral">&quot;kernel-kvmsmall&quot;</span>).<span class="keywordtype">id</span>() );</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;          q.<a class="code" href="classzypp_1_1sat_1_1Queue.html#ae2c07f4d37276d479125f12b0789e221">push</a>( <a class="code" href="classzypp_1_1IdString.html">IdString</a>(<span class="stringliteral">&quot;kernel-kvmsmall-base&quot;</span>).<span class="keywordtype">id</span>() );</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;          q.<a class="code" href="classzypp_1_1sat_1_1Queue.html#ae2c07f4d37276d479125f12b0789e221">push</a>( <a class="code" href="classzypp_1_1IdString.html">IdString</a>(<span class="stringliteral">&quot;kernel-rt&quot;</span>).<span class="keywordtype">id</span>() );</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;          q.<a class="code" href="classzypp_1_1sat_1_1Queue.html#ae2c07f4d37276d479125f12b0789e221">push</a>( <a class="code" href="classzypp_1_1IdString.html">IdString</a>(<span class="stringliteral">&quot;kernel-rt-base&quot;</span>).<span class="keywordtype">id</span>() );</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;          q.<a class="code" href="classzypp_1_1sat_1_1Queue.html#ae2c07f4d37276d479125f12b0789e221">push</a>( <a class="code" href="classzypp_1_1IdString.html">IdString</a>(<span class="stringliteral">&quot;kernel-rt_debug&quot;</span>).<span class="keywordtype">id</span>() );</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;          q.<a class="code" href="classzypp_1_1sat_1_1Queue.html#ae2c07f4d37276d479125f12b0789e221">push</a>( <a class="code" href="classzypp_1_1IdString.html">IdString</a>(<span class="stringliteral">&quot;kernel-rt_debug-base&quot;</span>).<span class="keywordtype">id</span>() );</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;          q.<a class="code" href="classzypp_1_1sat_1_1Queue.html#ae2c07f4d37276d479125f12b0789e221">push</a>( <a class="code" href="classzypp_1_1IdString.html">IdString</a>(<span class="stringliteral">&quot;kernel-vanilla&quot;</span>).<span class="keywordtype">id</span>() );</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;          q.<a class="code" href="classzypp_1_1sat_1_1Queue.html#ae2c07f4d37276d479125f12b0789e221">push</a>( <a class="code" href="classzypp_1_1IdString.html">IdString</a>(<span class="stringliteral">&quot;kernel-vanilla-base&quot;</span>).<span class="keywordtype">id</span>() );</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;        }</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;        <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">filesystem::Pathname</a> needRebootDir { <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#ab2800733207f240280f2fd82b52ba4b2">Pathname::assertprefix</a>( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a9aab7cfcffbd677912a3a1ba15b670c2">root</a>(), <a class="code" href="classzypp_1_1ZConfig.html#a9b986f2c40a1aa9e1a2aea3d299210d1">ZConfig::instance</a>().needrebootPath() ) };</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;        <span class="keywordflow">if</span> ( <a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html">filesystem::PathInfo</a> ( needRebootDir ).isExist() ) {</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;          <a class="code" href="namespacezypp_1_1filesystem.html#ade46cd05af0a1fa7e5995e321cfb586b">filesystem::DirContent</a> ls;</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;          <a class="code" href="namespacezypp_1_1filesystem.html#a424d384472de80e5cc48f5d5662cc859">filesystem::readdir</a>( ls, needRebootDir, <span class="keyword">false</span> );</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;          <span class="keywordflow">for</span> ( <span class="keyword">const</span> <a class="code" href="structzypp_1_1filesystem_1_1DirEntry.html">filesystem::DirEntry</a> &amp;entry : ls ) {</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;            <span class="keywordflow">if</span> ( entry.type != <a class="code" href="namespacezypp_1_1filesystem.html#a29a964b2276d62ff455b096f40269896af84cde350cb0725bea05fc9bf1bcba62">filesystem::FT_FILE</a> )</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;              <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;            <a class="code" href="classzypp_1_1target_1_1SolvIdentFile.html">SolvIdentFile</a> file ( needRebootDir / entry.name );</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;            <span class="keywordflow">for</span> ( <span class="keyword">const</span> <span class="keyword">auto</span> &amp; <a class="code" href="Pool_8cc.html#a6fa95b1480497f007426f23fa2dbc23f">idstr</a> : file.<a class="code" href="classzypp_1_1target_1_1SolvIdentFile.html#acacb56c5b0bce5a31142fd8fe23a50db">data</a>() ) {</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;              q.<a class="code" href="classzypp_1_1sat_1_1Queue.html#ae2c07f4d37276d479125f12b0789e221">push</a>( <a class="code" href="Pool_8cc.html#a6fa95b1480497f007426f23fa2dbc23f">idstr</a>.id() );</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;            }</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;          }</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;        }</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;        satpool.<a class="code" href="classzypp_1_1sat_1_1Pool.html#a945ddc025815e6353c5824bfac45c7c3">setRebootNeededIdents</a>( q );</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;      }</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;      <span class="keywordflow">if</span> ( <a class="code" href="classzypp_1_1ZConfig.html#a9b986f2c40a1aa9e1a2aea3d299210d1">ZConfig::instance</a>().apply_locks_file() )</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;      {</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;        <span class="keyword">const</span> <a class="code" href="classzypp_1_1target_1_1HardLocksFile.html#aa553b39a8f33149e6f1047d005044c0e">HardLocksFile::Data</a> &amp; hardLocks( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a9a31841013bb8fc1c6be3d8e7733e8bc">_hardLocksFile</a>.<a class="code" href="classzypp_1_1target_1_1HardLocksFile.html#a908172daf8bb5b0f7dbd9ca947b62786">data</a>() );</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;        <span class="keywordflow">if</span> ( ! hardLocks.empty() )</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;        {</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;          <a class="code" href="classzypp_1_1ResPool.html#a35598ca6a635941d758dd092c5200c9c">ResPool::instance</a>().<a class="code" href="classzypp_1_1ResPool.html#a5f70787cb8b9b08dfc712455eba6bd1b">setHardLockQueries</a>( hardLocks );</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;        }</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;      }</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;      <span class="comment">// now that the target is loaded, we can cache the flavor</span></div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;      <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a42e512f9b715fcb08d1211ce62c53fcf">createLastDistributionFlavorCache</a>();</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;      <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;Target loaded: &quot;</span> &lt;&lt; system.<a class="code" href="classzypp_1_1Repository.html#a8fedcfd3395a24f53079c9390c3122b7">solvablesSize</a>() &lt;&lt; <span class="stringliteral">&quot; resolvables&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;    }</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;    <span class="comment">//</span></div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;    <span class="comment">// COMMIT</span></div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;    <span class="comment">//</span></div><div class="line"><a name="l01146"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#ac995a71686e4a432f131ba4bb7e872e8"> 1146</a></span>&#160;<span class="comment"></span>    <a class="code" href="classzypp_1_1ZYppCommitResult.html">ZYppCommitResult</a> <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#ac995a71686e4a432f131ba4bb7e872e8">TargetImpl::commit</a>( <a class="code" href="classzypp_1_1ResPool.html">ResPool</a> pool_r, <span class="keyword">const</span> <a class="code" href="classzypp_1_1ZYppCommitPolicy.html">ZYppCommitPolicy</a> &amp; policy_rX )</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;    {</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;      <span class="comment">// ----------------------------------------------------------------- //</span></div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;      <a class="code" href="classzypp_1_1ZYppCommitPolicy.html">ZYppCommitPolicy</a> policy_r( policy_rX );</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;      <a class="code" href="classzypp_1_1ShutdownLock.html">ShutdownLock</a> lck(<span class="stringliteral">&quot;Zypp commit running.&quot;</span>);</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;      <span class="comment">// Fake outstanding YCP fix: Honour restriction to media 1</span></div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;      <span class="comment">// at installation, but install all remaining packages if post-boot.</span></div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;      <span class="keywordflow">if</span> ( policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a629fb7ca7fc51d874344a61b23f764b2">restrictToMedia</a>() &gt; 1 )</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;        policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a887e8b3cca8feabdc5337fec3e242a76">allMedia</a>();</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;      <span class="keywordflow">if</span> ( policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a94af23f8dd5ce6b195a663280e05a8d9">downloadMode</a>() == <a class="code" href="namespacezypp.html#aff0a5458dd3d0a9dd37b1484c5787420afb54776d9ab348ca9eeb02a5b53d5ae3">DownloadDefault</a> ) {</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;        <span class="keywordflow">if</span> ( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a9aab7cfcffbd677912a3a1ba15b670c2">root</a>() == <span class="stringliteral">&quot;/&quot;</span> )</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;          policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a94af23f8dd5ce6b195a663280e05a8d9">downloadMode</a>(<a class="code" href="namespacezypp.html#aff0a5458dd3d0a9dd37b1484c5787420ae94073d823aada00d826a0859990e356">DownloadInHeaps</a>);</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;          policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a94af23f8dd5ce6b195a663280e05a8d9">downloadMode</a>(<a class="code" href="namespacezypp.html#aff0a5458dd3d0a9dd37b1484c5787420af41c5acb97a2bfb20b639d92e2397117">DownloadAsNeeded</a>);</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;      }</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;      <span class="comment">// DownloadOnly implies dry-run.</span></div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;      <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a94af23f8dd5ce6b195a663280e05a8d9">downloadMode</a>() == <a class="code" href="namespacezypp.html#aff0a5458dd3d0a9dd37b1484c5787420af06a07a653c79d4e8240ca0c05c17be1">DownloadOnly</a> )</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;        policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a59f6a1ec6fbfecadbb22564170cfd8dc">dryRun</a>( <span class="keyword">true</span> );</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;      <span class="comment">// ----------------------------------------------------------------- //</span></div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;      <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;TargetImpl::commit(&lt;pool&gt;, &quot;</span> &lt;&lt; policy_r &lt;&lt; <span class="stringliteral">&quot;)&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;      <span class="comment">// Compute transaction:</span></div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;<span class="comment"></span>      <a class="code" href="classzypp_1_1ZYppCommitResult.html">ZYppCommitResult</a> result( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a9aab7cfcffbd677912a3a1ba15b670c2">root</a>() );</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;      result.<a class="code" href="classzypp_1_1ZYppCommitResult.html#af25b4620f2b6050ffbb21e3a19e5eb9b">rTransaction</a>() = pool_r.<a class="code" href="classzypp_1_1ResPool.html#a731a353c23e322c00b69ed51dbe77c34">resolver</a>().<a class="code" href="classzypp_1_1Resolver.html#a321eac659804e44ebbdf4f02305be03f">getTransaction</a>();</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;      result.<a class="code" href="classzypp_1_1ZYppCommitResult.html#af25b4620f2b6050ffbb21e3a19e5eb9b">rTransaction</a>().<a class="code" href="classzypp_1_1sat_1_1Transaction.html#a92729c01a9786df31c167bbef8d1622d">order</a>();</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;      <span class="comment">// steps: this is our todo-list</span></div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;      <a class="code" href="classzypp_1_1ZYppCommitResult.html#adb000f54f4a32d2f1ed2f6765ee358aa">ZYppCommitResult::TransactionStepList</a> &amp; steps( result.<a class="code" href="classzypp_1_1ZYppCommitResult.html#a5cdf8961e896b149d286637dff00748a">rTransactionStepList</a>() );</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;      <span class="keywordflow">if</span> ( policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a629fb7ca7fc51d874344a61b23f764b2">restrictToMedia</a>() )</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;      {</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;        <span class="comment">// Collect until the 1st package from an unwanted media occurs.</span></div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;        <span class="comment">// Further collection could violate install order.</span></div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;        <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;Restrict to media number &quot;</span> &lt;&lt; policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a629fb7ca7fc51d874344a61b23f764b2">restrictToMedia</a>() &lt;&lt; endl;</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;        <a class="code" href="Easy_8h.html#a7887338b8a0727becb37d8061fcbfc0e">for_</a>( it, result.<a class="code" href="classzypp_1_1ZYppCommitResult.html#af22c0c2759e0036fa206e072fd350f2e">transaction</a>().<a class="code" href="classzypp_1_1sat_1_1Transaction.html#a6e1527e9abad77dfaa9001350fe6dd0b">begin</a>(), result.<a class="code" href="classzypp_1_1ZYppCommitResult.html#af22c0c2759e0036fa206e072fd350f2e">transaction</a>().<a class="code" href="classzypp_1_1sat_1_1Transaction.html#a2368b92f05f0bb646028cb853bb3f02f">end</a>() )</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;        {</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;          <span class="keywordflow">if</span> ( <a class="code" href="namespacezypp.html#aa98a7bf54b222ed49cb4422d333f1ade">makeResObject</a>( *it )-&gt;mediaNr() &gt; 1 )</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;          steps.push_back( *it );</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;        }</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;      }</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;      <span class="keywordflow">else</span></div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;      {</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;        result.<a class="code" href="classzypp_1_1ZYppCommitResult.html#a5cdf8961e896b149d286637dff00748a">rTransactionStepList</a>().insert( steps.end(), result.<a class="code" href="classzypp_1_1ZYppCommitResult.html#af22c0c2759e0036fa206e072fd350f2e">transaction</a>().<a class="code" href="classzypp_1_1sat_1_1Transaction.html#a6e1527e9abad77dfaa9001350fe6dd0b">begin</a>(), result.<a class="code" href="classzypp_1_1ZYppCommitResult.html#af22c0c2759e0036fa206e072fd350f2e">transaction</a>().<a class="code" href="classzypp_1_1sat_1_1Transaction.html#a2368b92f05f0bb646028cb853bb3f02f">end</a>() );</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;      }</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;      <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;Todo: &quot;</span> &lt;&lt; result &lt;&lt; endl;</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;      <span class="comment">// Prepare execution of commit plugins:</span></div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;<span class="comment"></span>      <a class="code" href="classzypp_1_1PluginExecutor.html">PluginExecutor</a> commitPlugins;</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;      <span class="keywordflow">if</span> ( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a9aab7cfcffbd677912a3a1ba15b670c2">root</a>() == <span class="stringliteral">&quot;/&quot;</span> &amp;&amp; ! policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a59f6a1ec6fbfecadbb22564170cfd8dc">dryRun</a>() )</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;      {</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;        commitPlugins.<a class="code" href="classzypp_1_1PluginExecutor.html#a7e37b4a7bc1c2e7770d2f547efe01598">load</a>( <a class="code" href="classzypp_1_1ZConfig.html#a9b986f2c40a1aa9e1a2aea3d299210d1">ZConfig::instance</a>().pluginsPath()/<span class="stringliteral">&quot;commit&quot;</span> );</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;      }</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;      <span class="keywordflow">if</span> ( commitPlugins )</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;        commitPlugins.<a class="code" href="classzypp_1_1PluginExecutor.html#ab337837061a8ef89198eafb92cac59b9">send</a>( transactionPluginFrame( <span class="stringliteral">&quot;COMMITBEGIN&quot;</span>, steps ) );</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;      <span class="comment">// Write out a testcase if we&#39;re in dist upgrade mode.</span></div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;<span class="comment"></span>      <span class="keywordflow">if</span> ( pool_r.<a class="code" href="classzypp_1_1ResPool.html#a731a353c23e322c00b69ed51dbe77c34">resolver</a>().<a class="code" href="classzypp_1_1Resolver.html#a74e85b8d05e50b8af967f03cc99a9a8a">upgradeMode</a>() || pool_r.<a class="code" href="classzypp_1_1ResPool.html#a731a353c23e322c00b69ed51dbe77c34">resolver</a>().<a class="code" href="classzypp_1_1Resolver.html#ac34f765bc749ab37bcded4815087c179">upgradingRepos</a>() )</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;      {</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;        <span class="keywordflow">if</span> ( ! policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a59f6a1ec6fbfecadbb22564170cfd8dc">dryRun</a>() )</div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;        {</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;          <a class="code" href="namespacezypp_1_1target.html#a97f6495f9b6a0e6594adfd13002152d1">writeUpgradeTestcase</a>();</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;        }</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;        {</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;          <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> &lt;&lt; <span class="stringliteral">&quot;dryRun: Not writing upgrade testcase.&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;        }</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;      }</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;      <span class="comment">// Store non-package data:</span></div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;<span class="comment"></span>      <span class="keywordflow">if</span> ( ! policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a59f6a1ec6fbfecadbb22564170cfd8dc">dryRun</a>() )</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;      {</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;        <a class="code" href="namespacezypp_1_1filesystem.html#abfb7f00fc9ec45c94eb35f789b980817">filesystem::assert_dir</a>( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#ad12090f70667f900edbb3ea69eb1f6d2">home</a>() );</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;        <span class="comment">// requested locales</span></div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;        <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a421d883d6623b83dfeb6961c8cecfb24">_requestedLocalesFile</a>.<a class="code" href="classzypp_1_1target_1_1RequestedLocalesFile.html#a8cfb30fc8c72f3962449b57e8695f568">setLocales</a>( pool_r.<a class="code" href="classzypp_1_1ResPool.html#aa4ba2fb98cad46b36ee7e2a1997b3d62">getRequestedLocales</a>() );</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;        <span class="comment">// autoinstalled</span></div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;        {</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;          <a class="code" href="classzypp_1_1target_1_1SolvIdentFile.html#ac3b4d2f79a1c969d8b4c50b23c173878">SolvIdentFile::Data</a> newdata;</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;          <span class="keywordflow">for</span> ( <a class="code" href="classzypp_1_1sat_1_1Queue.html#ab8ae39973f8cc36309a02cfd2e7fbdf3">sat::Queue::value_type</a> <span class="keywordtype">id</span> : result.<a class="code" href="classzypp_1_1ZYppCommitResult.html#af25b4620f2b6050ffbb21e3a19e5eb9b">rTransaction</a>().<a class="code" href="classzypp_1_1sat_1_1Transaction.html#a4810a5e5ac748091398b61b91b558511">autoInstalled</a>() )</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;            newdata.insert( <a class="code" href="classzypp_1_1IdString.html">IdString</a>(<span class="keywordtype">id</span>) );</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;          <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a8632dcaa02cfda22800c0a4a1920e643">_autoInstalledFile</a>.<a class="code" href="classzypp_1_1target_1_1SolvIdentFile.html#ad6d892a227b69327bd176dd061c14a4b">setData</a>( newdata );</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;        }</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;        <span class="comment">// hard locks</span></div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;        <span class="keywordflow">if</span> ( <a class="code" href="classzypp_1_1ZConfig.html#a9b986f2c40a1aa9e1a2aea3d299210d1">ZConfig::instance</a>().apply_locks_file() )</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;        {</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;          <a class="code" href="classzypp_1_1target_1_1HardLocksFile.html#aa553b39a8f33149e6f1047d005044c0e">HardLocksFile::Data</a> newdata;</div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;          pool_r.<a class="code" href="classzypp_1_1ResPool.html#ae1515db6d60c62f236c06b12ba4802fe">getHardLockQueries</a>( newdata );</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;          <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a9a31841013bb8fc1c6be3d8e7733e8bc">_hardLocksFile</a>.<a class="code" href="classzypp_1_1target_1_1HardLocksFile.html#a04db6ebb2e91ce093eb16372c2aee30b">setData</a>( newdata );</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;        }</div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;      }</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;      <span class="keywordflow">else</span></div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;      {</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;        <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> &lt;&lt; <span class="stringliteral">&quot;dryRun: Not stroring non-package data.&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;      }</div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;      <span class="comment">// First collect and display all messages</span></div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;      <span class="comment">// associated with patches to be installed.</span></div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;<span class="comment"></span>      <span class="keywordflow">if</span> ( ! policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a59f6a1ec6fbfecadbb22564170cfd8dc">dryRun</a>() )</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;      {</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;        <a class="code" href="Easy_8h.html#a7887338b8a0727becb37d8061fcbfc0e">for_</a>( it, steps.begin(), steps.end() )</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;        {</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;          <span class="keywordflow">if</span> ( ! it-&gt;satSolvable().isKind&lt;<a class="code" href="classzypp_1_1Patch.html">Patch</a>&gt;() )</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;            <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;          <a class="code" href="classzypp_1_1PoolItem.html">PoolItem</a> pi( *it );</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;          <span class="keywordflow">if</span> ( ! pi.<a class="code" href="classzypp_1_1PoolItem.html#a6788d8006e6afb88ebc4e11151d20e2c">status</a>().<a class="code" href="classzypp_1_1ResStatus.html#a6176343dbae9c6face06257622a42c17">isToBeInstalled</a>() )</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;            <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;          <a class="code" href="classzypp_1_1Patch.html#a217412a82513587d3646a8d82a71659f">Patch::constPtr</a> patch( asKind&lt;Patch&gt;(pi.<a class="code" href="classzypp_1_1PoolItem.html#a341c425d6489ce0e408e9c807b3896ee">resolvable</a>()) );</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;          <span class="keywordflow">if</span> ( ! patch ||patch-&gt;message().empty()  )</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;            <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;          <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;Show message for &quot;</span> &lt;&lt; patch &lt;&lt; endl;</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;          <a class="code" href="structzypp_1_1callback_1_1SendReport.html">callback::SendReport&lt;target::PatchMessageReport&gt;</a> <a class="code" href="MediaCurl_8cc.html#a4e0826ef1eedfec4b8c01665fedeb6d6">report</a>;</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;          <span class="keywordflow">if</span> ( ! <a class="code" href="MediaCurl_8cc.html#a4e0826ef1eedfec4b8c01665fedeb6d6">report</a>-&gt;show( patch ) )</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;          {</div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;            <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> &lt;&lt; <span class="stringliteral">&quot;commit aborted by the user&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;            <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>( <a class="code" href="classzypp_1_1target_1_1TargetAbortedException.html">TargetAbortedException</a>( <a class="code" href="Gettext_8h.html#a196fa0d25523f7c73d4d3a89fcd0000d">N_</a>(<span class="stringliteral">&quot;Installation has been aborted as directed.&quot;</span>) ) );</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;          }</div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;        }</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;      }</div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;      <span class="keywordflow">else</span></div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;      {</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;        <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> &lt;&lt; <span class="stringliteral">&quot;dryRun: Not checking patch messages.&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;      }</div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;</div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;      <span class="comment">// Remove/install packages.</span></div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;<span class="comment"></span>      <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> &lt;&lt; <span class="stringliteral">&quot;commit log file is set to: &quot;</span> &lt;&lt; <a class="code" href="classzypp_1_1HistoryLog.html#aa19a350747ecf398a526fb0935dbaefe">HistoryLog::fname</a>() &lt;&lt; endl;</div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;      <span class="keywordflow">if</span> ( ! policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a59f6a1ec6fbfecadbb22564170cfd8dc">dryRun</a>() || policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a94af23f8dd5ce6b195a663280e05a8d9">downloadMode</a>() == <a class="code" href="namespacezypp.html#aff0a5458dd3d0a9dd37b1484c5787420af06a07a653c79d4e8240ca0c05c17be1">DownloadOnly</a> )</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;      {</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;        <span class="comment">// Prepare the package cache. Pass all items requiring download.</span></div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;        <a class="code" href="classzypp_1_1target_1_1CommitPackageCache.html">CommitPackageCache</a> packageCache;</div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;        packageCache.<a class="code" href="classzypp_1_1target_1_1CommitPackageCache.html#a79fdbc2bb1fd954c9396e29960276cc4">setCommitList</a>( steps.begin(), steps.end() );</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;</div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160;        <span class="keywordtype">bool</span> miss = <span class="keyword">false</span>;</div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;        <span class="keywordflow">if</span> ( policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a94af23f8dd5ce6b195a663280e05a8d9">downloadMode</a>() != <a class="code" href="namespacezypp.html#aff0a5458dd3d0a9dd37b1484c5787420af41c5acb97a2bfb20b639d92e2397117">DownloadAsNeeded</a> )</div><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;        {</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;          <span class="comment">// Preload the cache. Until now this means pre-loading all packages.</span></div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;          <span class="comment">// Once DownloadInHeaps is fully implemented, this will change and</span></div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;          <span class="comment">// we may actually have more than one heap.</span></div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;          <a class="code" href="Easy_8h.html#a7887338b8a0727becb37d8061fcbfc0e">for_</a>( it, steps.begin(), steps.end() )</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;          {</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;            <span class="keywordflow">switch</span> ( it-&gt;stepType() )</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;            {</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;              <span class="keywordflow">case</span> <a class="code" href="classzypp_1_1sat_1_1Transaction.html#acc041dbe1a42f50a156ef630ade4021ea603d57d09ebfee7dd5533442ab94a8de">sat::Transaction::TRANSACTION_INSTALL</a>:</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;              <span class="keywordflow">case</span> <a class="code" href="classzypp_1_1sat_1_1Transaction.html#acc041dbe1a42f50a156ef630ade4021ea15ec9f7bfd74232fe760e7e73f95be47">sat::Transaction::TRANSACTION_MULTIINSTALL</a>:</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;                <span class="comment">// proceed: only install actionas may require download.</span></div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;              <span class="keywordflow">default</span>:</div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;                <span class="comment">// next: no download for or non-packages and delete actions.</span></div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;                <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;            }</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;            <a class="code" href="classzypp_1_1PoolItem.html">PoolItem</a> pi( *it );</div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;            <span class="keywordflow">if</span> ( pi-&gt;<a class="code" href="structzypp_1_1sat_1_1SolvableType.html#a32e023c8e4b8f823ffa8561e3e15ec7f">isKind</a>&lt;<a class="code" href="classzypp_1_1Package.html">Package</a>&gt;() || pi-&gt;<a class="code" href="structzypp_1_1sat_1_1SolvableType.html#a32e023c8e4b8f823ffa8561e3e15ec7f">isKind</a>&lt;<a class="code" href="classzypp_1_1SrcPackage.html">SrcPackage</a>&gt;() )</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;            {</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;              <a class="code" href="classzypp_1_1AutoDispose.html">ManagedFile</a> localfile;</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;              <span class="keywordflow">try</span></div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;              {</div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;                localfile = packageCache.<a class="code" href="classzypp_1_1target_1_1CommitPackageCache.html#ac5dd8397df32416bb05ac10f7971e1ce">get</a>( pi );</div><div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;                localfile.<a class="code" href="classzypp_1_1AutoDispose.html#a521dbb5b910cd99a33850c12de8987d5">resetDispose</a>(); <span class="comment">// keep the package file in the cache</span></div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;              }</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;              <span class="keywordflow">catch</span> ( <span class="keyword">const</span> AbortRequestException &amp; exp )</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;              {</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;                it-&gt;stepStage( <a class="code" href="classzypp_1_1sat_1_1Transaction.html#af8597d5471ec4b6f36571fa6a07cb806afd2eb2b19994354abc153f98fd86e4e5">sat::Transaction::STEP_ERROR</a> );</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;                miss = <span class="keyword">true</span>;</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;                <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> &lt;&lt; <span class="stringliteral">&quot;commit cache preload aborted by the user&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;                <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>( <a class="code" href="classzypp_1_1target_1_1TargetAbortedException.html">TargetAbortedException</a>( <a class="code" href="Gettext_8h.html#a196fa0d25523f7c73d4d3a89fcd0000d">N_</a>(<span class="stringliteral">&quot;Installation has been aborted as directed.&quot;</span>) ) );</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;              }</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;              <span class="keywordflow">catch</span> ( <span class="keyword">const</span> SkipRequestException &amp; exp )</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;              {</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;                <a class="code" href="group__ZYPP__THROW.html#ga0a6d828c3e5802c5ca1ab6f5a86e9fc1">ZYPP_CAUGHT</a>( exp );</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;                it-&gt;stepStage( <a class="code" href="classzypp_1_1sat_1_1Transaction.html#af8597d5471ec4b6f36571fa6a07cb806afd2eb2b19994354abc153f98fd86e4e5">sat::Transaction::STEP_ERROR</a> );</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;                miss = <span class="keyword">true</span>;</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;                <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> &lt;&lt; <span class="stringliteral">&quot;Skipping cache preload package &quot;</span> &lt;&lt; pi-&gt;asKind&lt;<a class="code" href="classzypp_1_1Package.html">Package</a>&gt;() &lt;&lt; <span class="stringliteral">&quot; in commit&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;                <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;              }</div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;              <span class="keywordflow">catch</span> ( <span class="keyword">const</span> <a class="code" href="classzypp_1_1Exception.html">Exception</a> &amp; exp )</div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;              {</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;                <span class="comment">// bnc #395704: missing catch causes abort.</span></div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;                <span class="comment">// TODO see if packageCache fails to handle errors correctly.</span></div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;                <a class="code" href="group__ZYPP__THROW.html#ga0a6d828c3e5802c5ca1ab6f5a86e9fc1">ZYPP_CAUGHT</a>( exp );</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;                it-&gt;stepStage( <a class="code" href="classzypp_1_1sat_1_1Transaction.html#af8597d5471ec4b6f36571fa6a07cb806afd2eb2b19994354abc153f98fd86e4e5">sat::Transaction::STEP_ERROR</a> );</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;                miss = <span class="keyword">true</span>;</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;                <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#gafeeffe52c8fd59db7c61cf8b02042dbf">INT</a> &lt;&lt; <span class="stringliteral">&quot;Unexpected Error: Skipping cache preload package &quot;</span> &lt;&lt; pi-&gt;asKind&lt;<a class="code" href="classzypp_1_1Package.html">Package</a>&gt;() &lt;&lt; <span class="stringliteral">&quot; in commit&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;                <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;              }</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;            }</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;          }</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160;          packageCache.<a class="code" href="classzypp_1_1target_1_1CommitPackageCache.html#a891d6689543bbd8ddad56b1152c66e42">preloaded</a>( <span class="keyword">true</span> ); <span class="comment">// try to avoid duplicate infoInCache CBs in commit</span></div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;        }</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;        <span class="keywordflow">if</span> ( miss )</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;        {</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160;          <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a> &lt;&lt; <span class="stringliteral">&quot;Some packages could not be provided. Aborting commit.&quot;</span>&lt;&lt; endl;</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;        }</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;        {</div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;          <span class="keywordflow">if</span> ( ! policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a59f6a1ec6fbfecadbb22564170cfd8dc">dryRun</a>() )</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;          {</div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;            <span class="comment">// if cache is preloaded, check for file conflicts</span></div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;            <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#ad769e3431d45346cbe2a42dd01dd22bc">commitFindFileConflicts</a>( policy_r, result );</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;            <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#ac995a71686e4a432f131ba4bb7e872e8">commit</a>( policy_r, packageCache, result );</div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;          }</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;          <span class="keywordflow">else</span></div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;          {</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;            <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> &lt;&lt; <span class="stringliteral">&quot;dryRun/downloadOnly: Not installing/deleting anything.&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;          }</div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;        }</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;      }</div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;      <span class="keywordflow">else</span></div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;      {</div><div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160;        <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> &lt;&lt; <span class="stringliteral">&quot;dryRun: Not downloading/installing/deleting anything.&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160;      }</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;</div><div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;      <span class="comment">// Send result to commit plugins:</span></div><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;<span class="comment"></span>      <span class="keywordflow">if</span> ( commitPlugins )</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;        commitPlugins.<a class="code" href="classzypp_1_1PluginExecutor.html#ab337837061a8ef89198eafb92cac59b9">send</a>( transactionPluginFrame( <span class="stringliteral">&quot;COMMITEND&quot;</span>, steps ) );</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;      <span class="comment">// Try to rebuild solv file while rpm database is still in cache</span></div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;<span class="comment"></span>      <span class="keywordflow">if</span> ( ! policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a59f6a1ec6fbfecadbb22564170cfd8dc">dryRun</a>() )</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;      {</div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;        <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a7222390264247de9131baeb887274adf">buildCache</a>();</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160;      }</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;      <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;TargetImpl::commit(&lt;pool&gt;, &quot;</span> &lt;&lt; policy_r &lt;&lt; <span class="stringliteral">&quot;) returns: &quot;</span> &lt;&lt; result &lt;&lt; endl;</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;      <span class="keywordflow">return</span> result;</div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;    }</div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;</div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;    <span class="comment">//</span></div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;    <span class="comment">// COMMIT internal</span></div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;    <span class="comment">//</span></div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;<span class="comment"></span>    <span class="keyword">namespace</span></div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;    {</div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;      <span class="keyword">struct </span>NotifyAttemptToModify</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;      {</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;        NotifyAttemptToModify( <a class="code" href="classzypp_1_1ZYppCommitResult.html">ZYppCommitResult</a> &amp; result_r ) : <a class="code" href="TargetImpl_8cc.html#a50cfd096d0b2a80d96453d4a465c54ad">_result</a>( result_r ) {}</div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;        <span class="keywordtype">void</span> operator()()</div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;        { <span class="keywordflow">if</span> ( <a class="code" href="TargetImpl_8cc.html#aaa3b6f69208c0140a8ce6730fd284243">_guard</a> ) { <a class="code" href="TargetImpl_8cc.html#a50cfd096d0b2a80d96453d4a465c54ad">_result</a>.attemptToModify( <span class="keyword">true</span> ); <a class="code" href="TargetImpl_8cc.html#aaa3b6f69208c0140a8ce6730fd284243">_guard</a> = <span class="keyword">false</span>; } }</div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;</div><div class="line"><a name="l01409"></a><span class="lineno"><a class="line" href="TargetImpl_8cc.html#aaa3b6f69208c0140a8ce6730fd284243"> 1409</a></span>&#160;        TrueBool           <a class="code" href="TargetImpl_8cc.html#aaa3b6f69208c0140a8ce6730fd284243">_guard</a>;</div><div class="line"><a name="l01410"></a><span class="lineno"><a class="line" href="TargetImpl_8cc.html#a50cfd096d0b2a80d96453d4a465c54ad"> 1410</a></span>&#160;        ZYppCommitResult &amp; <a class="code" href="TargetImpl_8cc.html#a50cfd096d0b2a80d96453d4a465c54ad">_result</a>;</div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;      };</div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;    } <span class="comment">// namespace</span></div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;</div><div class="line"><a name="l01414"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#a571f9c70d0b236fdae849aaec7efedb8"> 1414</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#ac995a71686e4a432f131ba4bb7e872e8">TargetImpl::commit</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1ZYppCommitPolicy.html">ZYppCommitPolicy</a> &amp; policy_r,</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;                             <a class="code" href="classzypp_1_1target_1_1CommitPackageCache.html">CommitPackageCache</a> &amp; packageCache_r,</div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;                             <a class="code" href="classzypp_1_1ZYppCommitResult.html">ZYppCommitResult</a> &amp; result_r )</div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160;    {</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;      <span class="comment">// steps: this is our todo-list</span></div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;      <a class="code" href="classzypp_1_1ZYppCommitResult.html#adb000f54f4a32d2f1ed2f6765ee358aa">ZYppCommitResult::TransactionStepList</a> &amp; steps( result_r.<a class="code" href="classzypp_1_1ZYppCommitResult.html#a5cdf8961e896b149d286637dff00748a">rTransactionStepList</a>() );</div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;      <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;TargetImpl::commit(&lt;list&gt;&quot;</span> &lt;&lt; policy_r &lt;&lt; <span class="stringliteral">&quot;)&quot;</span> &lt;&lt; steps.size() &lt;&lt; endl;</div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;</div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;      <a class="code" href="classzypp_1_1HistoryLog.html">HistoryLog</a>().<a class="code" href="classzypp_1_1HistoryLog.html#a39281bed802920a7646de4f5da1ab003">stampCommand</a>();</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;</div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;      <span class="comment">// Send notification once upon 1st call to rpm</span></div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;      NotifyAttemptToModify attemptToModify( result_r );</div><div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;</div><div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;      <span class="keywordtype">bool</span> abort = <span class="keyword">false</span>;</div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;</div><div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160;      <a class="code" href="classzypp_1_1target_1_1RpmPostTransCollector.html">RpmPostTransCollector</a> postTransCollector( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a399da7ab141cf4275c93e5064fb6f565">_root</a> );</div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;      std::vector&lt;sat::Solvable&gt; successfullyInstalledPackages;</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;      <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a670b6a80a162acbd497937266336296b">TargetImpl::PoolItemList</a> remaining;</div><div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160;</div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;      <a class="code" href="Easy_8h.html#a7887338b8a0727becb37d8061fcbfc0e">for_</a>( step, steps.begin(), steps.end() )</div><div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160;      {</div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160;        <a class="code" href="classzypp_1_1PoolItem.html">PoolItem</a> citem( *step );</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;        <span class="keywordflow">if</span> ( step-&gt;stepType() == <a class="code" href="classzypp_1_1sat_1_1Transaction.html#acc041dbe1a42f50a156ef630ade4021eaba36bc6300f651f9004598b44c47df92">sat::Transaction::TRANSACTION_IGNORE</a> )</div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;        {</div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;          <span class="keywordflow">if</span> ( citem-&gt;<a class="code" href="structzypp_1_1sat_1_1SolvableType.html#a32e023c8e4b8f823ffa8561e3e15ec7f">isKind</a>&lt;<a class="code" href="classzypp_1_1Package.html">Package</a>&gt;() )</div><div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160;          {</div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;            <span class="comment">// for packages this means being obsoleted (by rpm)</span></div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;            <span class="comment">// thius no additional action is needed.</span></div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;            step-&gt;stepStage( <a class="code" href="classzypp_1_1sat_1_1Transaction.html#af8597d5471ec4b6f36571fa6a07cb806a0140e6fdbc5054f1cb0dcce68edba813">sat::Transaction::STEP_DONE</a> );</div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;            <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160;          }</div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160;        }</div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160;</div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;        <span class="keywordflow">if</span> ( citem-&gt;<a class="code" href="structzypp_1_1sat_1_1SolvableType.html#a32e023c8e4b8f823ffa8561e3e15ec7f">isKind</a>&lt;<a class="code" href="classzypp_1_1Package.html">Package</a>&gt;() )</div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160;        {</div><div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160;          <a class="code" href="classzypp_1_1Package.html#a8dd127525d177e04880787269d10491c">Package::constPtr</a> p = citem-&gt;asKind&lt;<a class="code" href="classzypp_1_1Package.html">Package</a>&gt;();</div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160;          <span class="keywordflow">if</span> ( citem.<a class="code" href="classzypp_1_1PoolItem.html#a6788d8006e6afb88ebc4e11151d20e2c">status</a>().<a class="code" href="classzypp_1_1ResStatus.html#a6176343dbae9c6face06257622a42c17">isToBeInstalled</a>() )</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;          {</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;            <a class="code" href="classzypp_1_1AutoDispose.html">ManagedFile</a> localfile;</div><div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160;            <span class="keywordflow">try</span></div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160;            {</div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160;              localfile = packageCache_r.<a class="code" href="classzypp_1_1target_1_1CommitPackageCache.html#ac5dd8397df32416bb05ac10f7971e1ce">get</a>( citem );</div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;            }</div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;            <span class="keywordflow">catch</span> ( <span class="keyword">const</span> AbortRequestException &amp;e )</div><div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;            {</div><div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;              <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> &lt;&lt; <span class="stringliteral">&quot;commit aborted by the user&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;              abort = <span class="keyword">true</span>;</div><div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;              step-&gt;stepStage( <a class="code" href="classzypp_1_1sat_1_1Transaction.html#af8597d5471ec4b6f36571fa6a07cb806afd2eb2b19994354abc153f98fd86e4e5">sat::Transaction::STEP_ERROR</a> );</div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;              <span class="keywordflow">break</span>;</div><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;            }</div><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;            <span class="keywordflow">catch</span> ( <span class="keyword">const</span> SkipRequestException &amp;e )</div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;            {</div><div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160;              <a class="code" href="group__ZYPP__THROW.html#ga0a6d828c3e5802c5ca1ab6f5a86e9fc1">ZYPP_CAUGHT</a>( e );</div><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;              <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> &lt;&lt; <span class="stringliteral">&quot;Skipping package &quot;</span> &lt;&lt; p &lt;&lt; <span class="stringliteral">&quot; in commit&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;              step-&gt;stepStage( <a class="code" href="classzypp_1_1sat_1_1Transaction.html#af8597d5471ec4b6f36571fa6a07cb806afd2eb2b19994354abc153f98fd86e4e5">sat::Transaction::STEP_ERROR</a> );</div><div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;              <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;            }</div><div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160;            <span class="keywordflow">catch</span> ( <span class="keyword">const</span> <a class="code" href="classzypp_1_1Exception.html">Exception</a> &amp;e )</div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;            {</div><div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;              <span class="comment">// bnc #395704: missing catch causes abort.</span></div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;              <span class="comment">// TODO see if packageCache fails to handle errors correctly.</span></div><div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;              <a class="code" href="group__ZYPP__THROW.html#ga0a6d828c3e5802c5ca1ab6f5a86e9fc1">ZYPP_CAUGHT</a>( e );</div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;              <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#gafeeffe52c8fd59db7c61cf8b02042dbf">INT</a> &lt;&lt; <span class="stringliteral">&quot;Unexpected Error: Skipping package &quot;</span> &lt;&lt; p &lt;&lt; <span class="stringliteral">&quot; in commit&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160;              step-&gt;stepStage( <a class="code" href="classzypp_1_1sat_1_1Transaction.html#af8597d5471ec4b6f36571fa6a07cb806afd2eb2b19994354abc153f98fd86e4e5">sat::Transaction::STEP_ERROR</a> );</div><div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160;              <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160;            }</div><div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160;</div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;<span class="preprocessor">#warning Exception handling</span></div><div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160;            <span class="comment">// create a installation progress report proxy</span></div><div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160;            <a class="code" href="classzypp_1_1target_1_1RpmInstallPackageReceiver.html">RpmInstallPackageReceiver</a> progress( citem.<a class="code" href="classzypp_1_1PoolItem.html#a341c425d6489ce0e408e9c807b3896ee">resolvable</a>() );</div><div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160;            progress.<a class="code" href="structzypp_1_1callback_1_1ReceiveReport.html#a27f78bea716c6a96d0f2ea009ad1c1b2">connect</a>(); <span class="comment">// disconnected on destruction.</span></div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160;</div><div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160;            <span class="keywordtype">bool</span> success = <span class="keyword">false</span>;</div><div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160;            rpm::RpmInstFlags flags( policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a2a873412afe2afd1dc0bb05567fb7de0">rpmInstFlags</a>() &amp; <a class="code" href="namespacezypp_1_1target_1_1rpm.html#a4c4781cc6d1baa791e7b97b8093beeb9a932d531761bf8ffe0d753e87dcb72360">rpm::RPMINST_JUSTDB</a> );</div><div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160;            <span class="comment">// Why force and nodeps?</span></div><div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;            <span class="comment">//</span></div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160;            <span class="comment">// Because zypp builds the transaction and the resolver asserts that</span></div><div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160;            <span class="comment">// everything is fine.</span></div><div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;            <span class="comment">// We use rpm just to unpack and register the package in the database.</span></div><div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;            <span class="comment">// We do this step by step, so rpm is not aware of the bigger context.</span></div><div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;            <span class="comment">// So we turn off rpms internal checks, because we do it inside zypp.</span></div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;            flags |= <a class="code" href="namespacezypp_1_1target_1_1rpm.html#a4c4781cc6d1baa791e7b97b8093beeb9a495b978c423d4b43fde7ac2162fab2aa">rpm::RPMINST_NODEPS</a>;</div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;            flags |= <a class="code" href="namespacezypp_1_1target_1_1rpm.html#a4c4781cc6d1baa791e7b97b8093beeb9a94080f683b374b639e6779aa75bfceab">rpm::RPMINST_FORCE</a>;</div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;            <span class="comment">//</span></div><div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;            <span class="keywordflow">if</span> (p-&gt;multiversionInstall())  flags |= <a class="code" href="namespacezypp_1_1target_1_1rpm.html#a4c4781cc6d1baa791e7b97b8093beeb9ae3750c83689335ae6cf97ca87155555a">rpm::RPMINST_NOUPGRADE</a>;</div><div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160;            <span class="keywordflow">if</span> (policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a59f6a1ec6fbfecadbb22564170cfd8dc">dryRun</a>())         flags |= <a class="code" href="namespacezypp_1_1target_1_1rpm.html#a4c4781cc6d1baa791e7b97b8093beeb9ab9a84f7b91905c4a4afe892460e92a24">rpm::RPMINST_TEST</a>;</div><div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;            <span class="keywordflow">if</span> (policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a3bf3022dc37dfe905a595dcb9e2a6a0f">rpmExcludeDocs</a>()) flags |= <a class="code" href="namespacezypp_1_1target_1_1rpm.html#a4c4781cc6d1baa791e7b97b8093beeb9af8bbc799b033021c660dd386218fdb24">rpm::RPMINST_EXCLUDEDOCS</a>;</div><div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160;            <span class="keywordflow">if</span> (policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#ad7e94b1f176f34c44f1771afa203cc0f">rpmNoSignature</a>()) flags |= <a class="code" href="namespacezypp_1_1target_1_1rpm.html#a4c4781cc6d1baa791e7b97b8093beeb9a27e0a89a0663b11161f98a9a1af230e9">rpm::RPMINST_NOSIGNATURE</a>;</div><div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160;</div><div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160;            attemptToModify();</div><div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160;            <span class="keywordflow">try</span></div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;            {</div><div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;              progress.tryLevel( <a class="code" href="structzypp_1_1target_1_1rpm_1_1InstallResolvableReport.html#aae72803397372c1d5881384936b884b9a80f89ca498a1b09a458fa6e667154d92">target::rpm::InstallResolvableReport::RPM_NODEPS_FORCE</a> );</div><div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160;              <span class="keywordflow">if</span> ( postTransCollector.<a class="code" href="classzypp_1_1target_1_1RpmPostTransCollector.html#a6bf400af76625f0cc5d9bcf254d694f9">collectScriptFromPackage</a>( localfile ) )</div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;                flags |= <a class="code" href="namespacezypp_1_1target_1_1rpm.html#a4c4781cc6d1baa791e7b97b8093beeb9abad4dbd890df97531225e953337a9a5c">rpm::RPMINST_NOPOSTTRANS</a>;</div><div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;              <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a73510ff231400d6bb267040360acdd33">rpm</a>().<a class="code" href="classzypp_1_1target_1_1rpm_1_1RpmDb.html#a1e1ba0d8329d9118fe1f5b106a20788e">installPackage</a>( localfile, flags );</div><div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160;              <a class="code" href="classzypp_1_1HistoryLog.html">HistoryLog</a>().<a class="code" href="classzypp_1_1HistoryLog.html#ad15290b2f5d7f1e0e721848695e3f33c">install</a>(citem);</div><div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160;</div><div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160;              <span class="keywordflow">if</span> ( progress.aborted() )</div><div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;              {</div><div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;                <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> &lt;&lt; <span class="stringliteral">&quot;commit aborted by the user&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;                localfile.<a class="code" href="classzypp_1_1AutoDispose.html#a521dbb5b910cd99a33850c12de8987d5">resetDispose</a>(); <span class="comment">// keep the package file in the cache</span></div><div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160;                abort = <span class="keyword">true</span>;</div><div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160;                step-&gt;stepStage( <a class="code" href="classzypp_1_1sat_1_1Transaction.html#af8597d5471ec4b6f36571fa6a07cb806afd2eb2b19994354abc153f98fd86e4e5">sat::Transaction::STEP_ERROR</a> );</div><div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160;              }</div><div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;              <span class="keywordflow">else</span></div><div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160;              {</div><div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160;                <span class="keywordflow">if</span> ( citem.<a class="code" href="structzypp_1_1sat_1_1SolvableType.html#a4dcec1377745830820dfd35e11e4c61d">identTriggersRebootNeededHint</a>() ) {</div><div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160;                  <span class="keyword">auto</span> rebootNeededFile = <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a9aab7cfcffbd677912a3a1ba15b670c2">root</a>() / <span class="stringliteral">&quot;/var/run/reboot-needed&quot;</span>;</div><div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160;                  <span class="keywordflow">if</span> ( <a class="code" href="namespacezypp_1_1filesystem.html#a6f2f65cf13b7f686adb9101a1dcd0910">filesystem::assert_file</a>( rebootNeededFile ) == EEXIST)</div><div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160;                    <a class="code" href="namespacezypp_1_1filesystem.html#ad608856a54835fb9200d63fc0720e6a1">filesystem::touch</a>( rebootNeededFile );</div><div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160;                }</div><div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160;</div><div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160;                success = <span class="keyword">true</span>;</div><div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160;                step-&gt;stepStage( <a class="code" href="classzypp_1_1sat_1_1Transaction.html#af8597d5471ec4b6f36571fa6a07cb806a0140e6fdbc5054f1cb0dcce68edba813">sat::Transaction::STEP_DONE</a> );</div><div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160;              }</div><div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160;            }</div><div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160;            <span class="keywordflow">catch</span> ( <a class="code" href="classzypp_1_1Exception.html">Exception</a> &amp; excpt_r )</div><div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160;            {</div><div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160;              <a class="code" href="group__ZYPP__THROW.html#ga0a6d828c3e5802c5ca1ab6f5a86e9fc1">ZYPP_CAUGHT</a>(excpt_r);</div><div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160;              localfile.<a class="code" href="classzypp_1_1AutoDispose.html#a521dbb5b910cd99a33850c12de8987d5">resetDispose</a>(); <span class="comment">// keep the package file in the cache</span></div><div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160;</div><div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160;              <span class="keywordflow">if</span> ( policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a59f6a1ec6fbfecadbb22564170cfd8dc">dryRun</a>() )</div><div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160;              {</div><div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160;                <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> &lt;&lt; <span class="stringliteral">&quot;dry run failed&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160;                step-&gt;stepStage( <a class="code" href="classzypp_1_1sat_1_1Transaction.html#af8597d5471ec4b6f36571fa6a07cb806afd2eb2b19994354abc153f98fd86e4e5">sat::Transaction::STEP_ERROR</a> );</div><div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160;              }</div><div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160;              <span class="comment">// else</span></div><div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160;              <span class="keywordflow">if</span> ( progress.aborted() )</div><div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160;              {</div><div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160;                <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> &lt;&lt; <span class="stringliteral">&quot;commit aborted by the user&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160;                abort = <span class="keyword">true</span>;</div><div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160;              }</div><div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160;              <span class="keywordflow">else</span></div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160;              {</div><div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160;                <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> &lt;&lt; <span class="stringliteral">&quot;Install failed&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160;              }</div><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;              step-&gt;stepStage( <a class="code" href="classzypp_1_1sat_1_1Transaction.html#af8597d5471ec4b6f36571fa6a07cb806afd2eb2b19994354abc153f98fd86e4e5">sat::Transaction::STEP_ERROR</a> );</div><div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160;              <span class="keywordflow">break</span>; <span class="comment">// stop</span></div><div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160;            }</div><div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160;</div><div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160;            <span class="keywordflow">if</span> ( success &amp;&amp; !policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a59f6a1ec6fbfecadbb22564170cfd8dc">dryRun</a>() )</div><div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160;            {</div><div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160;              citem.<a class="code" href="classzypp_1_1PoolItem.html#a6788d8006e6afb88ebc4e11151d20e2c">status</a>().<a class="code" href="classzypp_1_1ResStatus.html#ae1c6d1c7e500353c6d941a93468b4d4a">resetTransact</a>( <a class="code" href="classzypp_1_1ResStatus.html#a9d180246b068f4b649bf9b505a4d7044aa87314f0bf49771b1e7020fddd9a0711">ResStatus::USER</a> );</div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160;              successfullyInstalledPackages.push_back( citem.<a class="code" href="structzypp_1_1sat_1_1SolvableType.html#a78de3f4b41f0965829beaa28245a25dd">satSolvable</a>() );</div><div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160;              step-&gt;stepStage( <a class="code" href="classzypp_1_1sat_1_1Transaction.html#af8597d5471ec4b6f36571fa6a07cb806a0140e6fdbc5054f1cb0dcce68edba813">sat::Transaction::STEP_DONE</a> );</div><div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160;            }</div><div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160;          }</div><div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;          <span class="keywordflow">else</span></div><div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160;          {</div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;            <a class="code" href="classzypp_1_1target_1_1RpmRemovePackageReceiver.html">RpmRemovePackageReceiver</a> progress( citem.<a class="code" href="classzypp_1_1PoolItem.html#a341c425d6489ce0e408e9c807b3896ee">resolvable</a>() );</div><div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160;            progress.<a class="code" href="structzypp_1_1callback_1_1ReceiveReport.html#a27f78bea716c6a96d0f2ea009ad1c1b2">connect</a>(); <span class="comment">// disconnected on destruction.</span></div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;</div><div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160;            <span class="keywordtype">bool</span> success = <span class="keyword">false</span>;</div><div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160;            rpm::RpmInstFlags flags( policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a2a873412afe2afd1dc0bb05567fb7de0">rpmInstFlags</a>() &amp; <a class="code" href="namespacezypp_1_1target_1_1rpm.html#a4c4781cc6d1baa791e7b97b8093beeb9a932d531761bf8ffe0d753e87dcb72360">rpm::RPMINST_JUSTDB</a> );</div><div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160;            flags |= <a class="code" href="namespacezypp_1_1target_1_1rpm.html#a4c4781cc6d1baa791e7b97b8093beeb9a495b978c423d4b43fde7ac2162fab2aa">rpm::RPMINST_NODEPS</a>;</div><div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160;            <span class="keywordflow">if</span> (policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a59f6a1ec6fbfecadbb22564170cfd8dc">dryRun</a>()) flags |= <a class="code" href="namespacezypp_1_1target_1_1rpm.html#a4c4781cc6d1baa791e7b97b8093beeb9ab9a84f7b91905c4a4afe892460e92a24">rpm::RPMINST_TEST</a>;</div><div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160;</div><div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160;            attemptToModify();</div><div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160;            <span class="keywordflow">try</span></div><div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160;            {</div><div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160;              <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a73510ff231400d6bb267040360acdd33">rpm</a>().<a class="code" href="classzypp_1_1target_1_1rpm_1_1RpmDb.html#a7add3bf902cd34c71c74ff6cc4fd020b">removePackage</a>( p, flags );</div><div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160;              <a class="code" href="classzypp_1_1HistoryLog.html">HistoryLog</a>().<a class="code" href="classzypp_1_1HistoryLog.html#a57cf18a3b551230ce51c473196cb33a5">remove</a>(citem);</div><div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160;</div><div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160;              <span class="keywordflow">if</span> ( progress.aborted() )</div><div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160;              {</div><div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160;                <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> &lt;&lt; <span class="stringliteral">&quot;commit aborted by the user&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;                abort = <span class="keyword">true</span>;</div><div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160;                step-&gt;stepStage( <a class="code" href="classzypp_1_1sat_1_1Transaction.html#af8597d5471ec4b6f36571fa6a07cb806afd2eb2b19994354abc153f98fd86e4e5">sat::Transaction::STEP_ERROR</a> );</div><div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;              }</div><div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160;              <span class="keywordflow">else</span></div><div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160;              {</div><div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160;                success = <span class="keyword">true</span>;</div><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;                step-&gt;stepStage( <a class="code" href="classzypp_1_1sat_1_1Transaction.html#af8597d5471ec4b6f36571fa6a07cb806a0140e6fdbc5054f1cb0dcce68edba813">sat::Transaction::STEP_DONE</a> );</div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160;              }</div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160;            }</div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;            <span class="keywordflow">catch</span> (<a class="code" href="classzypp_1_1Exception.html">Exception</a> &amp; excpt_r)</div><div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;            {</div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;              <a class="code" href="group__ZYPP__THROW.html#ga0a6d828c3e5802c5ca1ab6f5a86e9fc1">ZYPP_CAUGHT</a>( excpt_r );</div><div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160;              <span class="keywordflow">if</span> ( progress.aborted() )</div><div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160;              {</div><div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;                <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> &lt;&lt; <span class="stringliteral">&quot;commit aborted by the user&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;                abort = <span class="keyword">true</span>;</div><div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;                step-&gt;stepStage( <a class="code" href="classzypp_1_1sat_1_1Transaction.html#af8597d5471ec4b6f36571fa6a07cb806afd2eb2b19994354abc153f98fd86e4e5">sat::Transaction::STEP_ERROR</a> );</div><div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160;              }</div><div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160;              <span class="comment">// else</span></div><div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;              <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> &lt;&lt; <span class="stringliteral">&quot;removal of &quot;</span> &lt;&lt; p &lt;&lt; <span class="stringliteral">&quot; failed&quot;</span>;</div><div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160;              step-&gt;stepStage( <a class="code" href="classzypp_1_1sat_1_1Transaction.html#af8597d5471ec4b6f36571fa6a07cb806afd2eb2b19994354abc153f98fd86e4e5">sat::Transaction::STEP_ERROR</a> );</div><div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160;            }</div><div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;            <span class="keywordflow">if</span> ( success &amp;&amp; !policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a59f6a1ec6fbfecadbb22564170cfd8dc">dryRun</a>() )</div><div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160;            {</div><div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160;              citem.<a class="code" href="classzypp_1_1PoolItem.html#a6788d8006e6afb88ebc4e11151d20e2c">status</a>().<a class="code" href="classzypp_1_1ResStatus.html#ae1c6d1c7e500353c6d941a93468b4d4a">resetTransact</a>( <a class="code" href="classzypp_1_1ResStatus.html#a9d180246b068f4b649bf9b505a4d7044aa87314f0bf49771b1e7020fddd9a0711">ResStatus::USER</a> );</div><div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;              step-&gt;stepStage( <a class="code" href="classzypp_1_1sat_1_1Transaction.html#af8597d5471ec4b6f36571fa6a07cb806a0140e6fdbc5054f1cb0dcce68edba813">sat::Transaction::STEP_DONE</a> );</div><div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160;            }</div><div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160;          }</div><div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160;        }</div><div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( ! policy_r.<a class="code" href="classzypp_1_1ZYppCommitPolicy.html#a59f6a1ec6fbfecadbb22564170cfd8dc">dryRun</a>() ) <span class="comment">// other resolvables (non-Package)</span></div><div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160;        {</div><div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160;          <span class="comment">// Status is changed as the buddy package buddy</span></div><div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160;          <span class="comment">// gets installed/deleted. Handle non-buddies only.</span></div><div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160;          <span class="keywordflow">if</span> ( ! citem.<a class="code" href="classzypp_1_1PoolItem.html#ab56be8572917da8404c45dec8f448412">buddy</a>() )</div><div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;          {</div><div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160;            <span class="keywordflow">if</span> ( citem-&gt;<a class="code" href="structzypp_1_1sat_1_1SolvableType.html#a32e023c8e4b8f823ffa8561e3e15ec7f">isKind</a>&lt;<a class="code" href="classzypp_1_1Product.html">Product</a>&gt;() )</div><div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160;            {</div><div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160;              <a class="code" href="classzypp_1_1Product.html#a28765039103a7e307d2f0670983849ed">Product::constPtr</a> p = citem-&gt;asKind&lt;<a class="code" href="classzypp_1_1Product.html">Product</a>&gt;();</div><div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160;              <span class="keywordflow">if</span> ( citem.<a class="code" href="classzypp_1_1PoolItem.html#a6788d8006e6afb88ebc4e11151d20e2c">status</a>().<a class="code" href="classzypp_1_1ResStatus.html#a6176343dbae9c6face06257622a42c17">isToBeInstalled</a>() )</div><div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160;              {</div><div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160;                <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a> &lt;&lt; <span class="stringliteral">&quot;Can&#39;t install orphan product without release-package! &quot;</span> &lt;&lt; citem &lt;&lt; endl;</div><div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160;              }</div><div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160;              <span class="keywordflow">else</span></div><div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160;              {</div><div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;                <span class="comment">// Deleting the corresponding product entry is all we con do.</span></div><div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160;                <span class="comment">// So the product will no longer be visible as installed.</span></div><div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;                std::string referenceFilename( p-&gt;referenceFilename() );</div><div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;                <span class="keywordflow">if</span> ( referenceFilename.empty() )</div><div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160;                {</div><div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;                  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a> &lt;&lt; <span class="stringliteral">&quot;Can&#39;t remove orphan product without &#39;referenceFilename&#39;! &quot;</span> &lt;&lt; citem &lt;&lt; endl;</div><div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;                }</div><div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;                <span class="keywordflow">else</span></div><div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;                {</div><div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;                  <a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html">PathInfo</a> referenceFile( <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#ab2800733207f240280f2fd82b52ba4b2">Pathname::assertprefix</a>( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a399da7ab141cf4275c93e5064fb6f565">_root</a>, <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a>( <span class="stringliteral">&quot;/etc/products.d&quot;</span> ) ) / referenceFilename );</div><div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;                  <span class="keywordflow">if</span> ( ! referenceFile.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#a76ad73c87053e421fd00b0b6bbc4ec98">isFile</a>() || <a class="code" href="namespacezypp_1_1filesystem.html#a4c64d87548a31ac2d33c378075dd6a12">filesystem::unlink</a>( referenceFile.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#af8223f1087bb62c359f03a51fb32a5a1">path</a>() ) != 0 )</div><div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;                  {</div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;                    <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a> &lt;&lt; <span class="stringliteral">&quot;Delete orphan product failed: &quot;</span> &lt;&lt; referenceFile &lt;&lt; endl;</div><div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160;                  }</div><div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160;                }</div><div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160;              }</div><div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160;            }</div><div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( citem-&gt;<a class="code" href="structzypp_1_1sat_1_1SolvableType.html#a32e023c8e4b8f823ffa8561e3e15ec7f">isKind</a>&lt;<a class="code" href="classzypp_1_1SrcPackage.html">SrcPackage</a>&gt;() &amp;&amp; citem.<a class="code" href="classzypp_1_1PoolItem.html#a6788d8006e6afb88ebc4e11151d20e2c">status</a>().<a class="code" href="classzypp_1_1ResStatus.html#a6176343dbae9c6face06257622a42c17">isToBeInstalled</a>() )</div><div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;            {</div><div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160;              <span class="comment">// SrcPackage is install-only</span></div><div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;              <a class="code" href="classzypp_1_1SrcPackage.html#aab481e5e070b41c4767b4be394dc3953">SrcPackage::constPtr</a> p = citem-&gt;asKind&lt;<a class="code" href="classzypp_1_1SrcPackage.html">SrcPackage</a>&gt;();</div><div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160;              <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#ac7a55b8e1e625010623658f814d57c9d">installSrcPackage</a>( p );</div><div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;            }</div><div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;</div><div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;            citem.<a class="code" href="classzypp_1_1PoolItem.html#a6788d8006e6afb88ebc4e11151d20e2c">status</a>().<a class="code" href="classzypp_1_1ResStatus.html#ae1c6d1c7e500353c6d941a93468b4d4a">resetTransact</a>( <a class="code" href="classzypp_1_1ResStatus.html#a9d180246b068f4b649bf9b505a4d7044aa87314f0bf49771b1e7020fddd9a0711">ResStatus::USER</a> );</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;            step-&gt;stepStage( <a class="code" href="classzypp_1_1sat_1_1Transaction.html#af8597d5471ec4b6f36571fa6a07cb806a0140e6fdbc5054f1cb0dcce68edba813">sat::Transaction::STEP_DONE</a> );</div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;          }</div><div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;</div><div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;        }  <span class="comment">// other resolvables</span></div><div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160;</div><div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;      } <span class="comment">// for</span></div><div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160;</div><div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160;      <span class="comment">// process all remembered posttrans scripts. If aborting,</span></div><div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160;      <span class="comment">// at least log omitted scripts.</span></div><div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160;      <span class="keywordflow">if</span> ( abort || (abort = !postTransCollector.<a class="code" href="classzypp_1_1target_1_1RpmPostTransCollector.html#a70199f31748ed22b889de57bce85b5ed">executeScripts</a>()) )</div><div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;        postTransCollector.<a class="code" href="classzypp_1_1target_1_1RpmPostTransCollector.html#acf0245f2ee4dba0cf10b6c94a7d02358">discardScripts</a>();</div><div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;</div><div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160;      <span class="comment">// Check presence of update scripts/messages. If aborting,</span></div><div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160;      <span class="comment">// at least log omitted scripts.</span></div><div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;      <span class="keywordflow">if</span> ( ! successfullyInstalledPackages.empty() )</div><div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160;      {</div><div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160;        <span class="keywordflow">if</span> ( ! RunUpdateScripts( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a399da7ab141cf4275c93e5064fb6f565">_root</a>, <a class="code" href="classzypp_1_1ZConfig.html#a9b986f2c40a1aa9e1a2aea3d299210d1">ZConfig::instance</a>().update_scriptsPath(),</div><div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;                                 successfullyInstalledPackages, abort ) )</div><div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;        {</div><div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160;          <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> &lt;&lt; <span class="stringliteral">&quot;Commit aborted by the user&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160;          abort = <span class="keyword">true</span>;</div><div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160;        }</div><div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;        <span class="comment">// send messages after scripts in case some script generates output,</span></div><div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;        <span class="comment">// that should be kept in t %ghost message file.</span></div><div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;        RunUpdateMessages( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a399da7ab141cf4275c93e5064fb6f565">_root</a>, <a class="code" href="classzypp_1_1ZConfig.html#a9b986f2c40a1aa9e1a2aea3d299210d1">ZConfig::instance</a>().update_messagesPath(),</div><div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160;                           successfullyInstalledPackages,</div><div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160;                           result_r );</div><div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;      }</div><div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160;</div><div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160;      <span class="keywordflow">if</span> ( abort )</div><div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160;      {</div><div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160;        <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>( <a class="code" href="classzypp_1_1target_1_1TargetAbortedException.html">TargetAbortedException</a>( <a class="code" href="Gettext_8h.html#a196fa0d25523f7c73d4d3a89fcd0000d">N_</a>(<span class="stringliteral">&quot;Installation has been aborted as directed.&quot;</span>) ) );</div><div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160;      }</div><div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160;    }</div><div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160;</div><div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160;</div><div class="line"><a name="l01691"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#a73510ff231400d6bb267040360acdd33"> 1691</a></span>&#160;    <a class="code" href="classzypp_1_1target_1_1rpm_1_1RpmDb.html">rpm::RpmDb</a> &amp; <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a73510ff231400d6bb267040360acdd33">TargetImpl::rpm</a>()</div><div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;    {</div><div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a68ceb59f98193242679509382b5cea9e">_rpm</a>;</div><div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160;    }</div><div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160;</div><div class="line"><a name="l01696"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#a9778c3068c8076d560ae928306b0cee8"> 1696</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a9778c3068c8076d560ae928306b0cee8">TargetImpl::providesFile</a> (<span class="keyword">const</span> std::string &amp; path_str, <span class="keyword">const</span> std::string &amp; name_str)<span class="keyword"> const</span></div><div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160;<span class="keyword">    </span>{</div><div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a68ceb59f98193242679509382b5cea9e">_rpm</a>.<a class="code" href="classzypp_1_1target_1_1rpm_1_1RpmDb.html#afe62af8df524e1a1166c432858071a48">hasFile</a>(path_str, name_str);</div><div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160;    }</div><div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160;</div><div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160;</div><div class="line"><a name="l01702"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#a591b9eeb83e191d7dff1532a51bb2da2"> 1702</a></span>&#160;    <a class="code" href="classzypp_1_1Date.html">Date</a> <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a591b9eeb83e191d7dff1532a51bb2da2">TargetImpl::timestamp</a>()<span class="keyword"> const</span></div><div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160;<span class="keyword">    </span>{</div><div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a68ceb59f98193242679509382b5cea9e">_rpm</a>.<a class="code" href="classzypp_1_1target_1_1rpm_1_1RpmDb.html#a16e9997481938d6666abc032ad0edf86">timestamp</a>();</div><div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;    }</div><div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;</div><div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160;    <span class="keyword">namespace</span></div><div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160;    {</div><div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160;      <a class="code" href="classzypp_1_1parser_1_1ProductFileData.html">parser::ProductFileData</a> baseproductdata( <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp; root_r )</div><div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160;      {</div><div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160;        <a class="code" href="classzypp_1_1parser_1_1ProductFileData.html">parser::ProductFileData</a> ret;</div><div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160;        <a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html">PathInfo</a> baseproduct( <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#ab2800733207f240280f2fd82b52ba4b2">Pathname::assertprefix</a>( root_r, <span class="stringliteral">&quot;/etc/products.d/baseproduct&quot;</span> ) );</div><div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160;</div><div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160;        <span class="keywordflow">if</span> ( baseproduct.isFile() )</div><div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160;        {</div><div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160;          <span class="keywordflow">try</span></div><div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160;          {</div><div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160;            ret = <a class="code" href="classzypp_1_1parser_1_1ProductFileReader.html#aaf4cf7b25dff7e83332e1c0e6083f195">parser::ProductFileReader::scanFile</a>( baseproduct.path() );</div><div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160;          }</div><div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160;          <span class="keywordflow">catch</span> ( <span class="keyword">const</span> <a class="code" href="classzypp_1_1Exception.html">Exception</a> &amp; excpt )</div><div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160;          {</div><div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160;            <a class="code" href="group__ZYPP__THROW.html#ga0a6d828c3e5802c5ca1ab6f5a86e9fc1">ZYPP_CAUGHT</a>( excpt );</div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160;          }</div><div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;        }</div><div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( PathInfo( <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#ab2800733207f240280f2fd82b52ba4b2">Pathname::assertprefix</a>( root_r, <span class="stringliteral">&quot;/etc/products.d&quot;</span> ) ).isDir() )</div><div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;        {</div><div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160;          <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a> &lt;&lt; <span class="stringliteral">&quot;baseproduct symlink is dangling or missing: &quot;</span> &lt;&lt; baseproduct &lt;&lt; endl;</div><div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160;        }</div><div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;        <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160;      }</div><div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160;</div><div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160;      <span class="keyword">inline</span> Pathname staticGuessRoot( <span class="keyword">const</span> Pathname &amp; root_r )</div><div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160;      {</div><div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160;        <span class="keywordflow">if</span> ( root_r.empty() )</div><div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160;        {</div><div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160;          <span class="comment">// empty root: use existing Target or assume &quot;/&quot;</span></div><div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160;          Pathname ret ( <a class="code" href="classzypp_1_1ZConfig.html#a9b986f2c40a1aa9e1a2aea3d299210d1">ZConfig::instance</a>().systemRoot() );</div><div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160;          <span class="keywordflow">if</span> ( ret.<a class="code" href="classzypp_1_1parser_1_1ProductFileData.html#a1fb4dfcabcc567bfe347932b38192aa8">empty</a>() )</div><div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160;            <span class="keywordflow">return</span> Pathname(<span class="stringliteral">&quot;/&quot;</span>);</div><div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160;          <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160;        }</div><div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160;        <span class="keywordflow">return</span> root_r;</div><div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160;      }</div><div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160;</div><div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160;      <span class="keyword">inline</span> std::string firstNonEmptyLineIn( <span class="keyword">const</span> Pathname &amp; file_r )</div><div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160;      {</div><div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160;        std::ifstream idfile( file_r.c_str() );</div><div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160;        <span class="keywordflow">for</span>( iostr::EachLine in( idfile ); in; in.next() )</div><div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160;        {</div><div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;          std::string line( <a class="code" href="namespacezypp_1_1str.html#af8bbe6f32fcb2fe4e652320506b3ba9d">str::trim</a>( *in ) );</div><div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;          <span class="keywordflow">if</span> ( ! line.empty() )</div><div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;            <span class="keywordflow">return</span> line;</div><div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160;        }</div><div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160;        <span class="keywordflow">return</span> std::string();</div><div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160;      }</div><div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160;    } <span class="comment">// namespace</span></div><div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01760"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#a90899160b17dad09ecee7cc7d1a3d46c"> 1760</a></span>&#160;    <a class="code" href="classzypp_1_1Product.html#a28765039103a7e307d2f0670983849ed">Product::constPtr</a> <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a90899160b17dad09ecee7cc7d1a3d46c">TargetImpl::baseProduct</a>()<span class="keyword"> const</span></div><div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160;<span class="keyword">    </span>{</div><div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160;      <a class="code" href="classzypp_1_1ResPool.html">ResPool</a> pool(<a class="code" href="classzypp_1_1ResPool.html#a35598ca6a635941d758dd092c5200c9c">ResPool::instance</a>());</div><div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160;      <a class="code" href="Easy_8h.html#a7887338b8a0727becb37d8061fcbfc0e">for_</a>( it, pool.<a class="code" href="classzypp_1_1ResPool.html#ade410e128f912663e67d7741a3049e9e">byKindBegin</a>&lt;<a class="code" href="classzypp_1_1Product.html">Product</a>&gt;(), pool.<a class="code" href="classzypp_1_1ResPool.html#aae1acad12c0d2fad291981c454a0763b">byKindEnd</a>&lt;<a class="code" href="classzypp_1_1Product.html">Product</a>&gt;() )</div><div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160;      {</div><div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160;        <a class="code" href="classzypp_1_1Product.html#a28765039103a7e307d2f0670983849ed">Product::constPtr</a> p = (*it)-&gt;asKind&lt;<a class="code" href="classzypp_1_1Product.html">Product</a>&gt;();</div><div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160;        <span class="keywordflow">if</span> ( p-&gt;isTargetDistribution() )</div><div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160;          <span class="keywordflow">return</span> p;</div><div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160;      }</div><div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160;      <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160;    }</div><div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160;</div><div class="line"><a name="l01772"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#aa3603ab8b3cb9b8fc55822845a732db4"> 1772</a></span>&#160;    <a class="code" href="namespacezypp.html#a7f4c013fbe3bd2619b780e06c2c36c20">LocaleSet</a> <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a2cc91213b6f96f661c70d2f2fd1608ca">TargetImpl::requestedLocales</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp; root_r )</div><div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160;    {</div><div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160;      <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> needroot( staticGuessRoot(root_r) );</div><div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160;      <span class="keyword">const</span> Target_constPtr target( getZYpp()-&gt;getTarget() );</div><div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160;      <span class="keywordflow">if</span> ( target &amp;&amp; target-&gt;root() == needroot )</div><div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160;        <span class="keywordflow">return</span> target-&gt;requestedLocales();</div><div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1target_1_1RequestedLocalesFile.html">RequestedLocalesFile</a>( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#ad12090f70667f900edbb3ea69eb1f6d2">home</a>(needroot) / <span class="stringliteral">&quot;RequestedLocales&quot;</span> ).<a class="code" href="classzypp_1_1target_1_1RequestedLocalesFile.html#ad82a939768f8940ffe3edadd7b2e0ae8">locales</a>();</div><div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160;    }</div><div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160;</div><div class="line"><a name="l01781"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#a36a81c64f16d3d4658ca677d08eb2b9b"> 1781</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a36a81c64f16d3d4658ca677d08eb2b9b">TargetImpl::updateAutoInstalled</a>()</div><div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160;    {</div><div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160;      <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;updateAutoInstalled if changed...&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160;      <a class="code" href="classzypp_1_1target_1_1SolvIdentFile.html#ac3b4d2f79a1c969d8b4c50b23c173878">SolvIdentFile::Data</a> newdata;</div><div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160;      <span class="keywordflow">for</span> ( <span class="keyword">auto</span> <span class="keywordtype">id</span> : <a class="code" href="classzypp_1_1sat_1_1Pool.html#aacf0eaeb5c1f2dbe59254df82840dd9a">sat::Pool::instance</a>().autoInstalled() )</div><div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160;        newdata.insert( <a class="code" href="classzypp_1_1IdString.html">IdString</a>(<span class="keywordtype">id</span>) ); <span class="comment">// explicit ctor!</span></div><div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160;      <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a8632dcaa02cfda22800c0a4a1920e643">_autoInstalledFile</a>.<a class="code" href="classzypp_1_1target_1_1SolvIdentFile.html#ad6d892a227b69327bd176dd061c14a4b">setData</a>( std::move(newdata) );</div><div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160;    }</div><div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160;</div><div class="line"><a name="l01790"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#a1bb900c594c9f6770d22e0805807265c"> 1790</a></span>&#160;    std::string <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a1bb900c594c9f6770d22e0805807265c">TargetImpl::targetDistribution</a>()<span class="keyword"> const</span></div><div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> baseproductdata( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a399da7ab141cf4275c93e5064fb6f565">_root</a> ).registerTarget(); }</div><div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160;    <span class="comment">// static version:</span></div><div class="line"><a name="l01793"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#a5c83f5e1d7fdef37b5b05d65920f543e"> 1793</a></span>&#160;    std::string <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a1bb900c594c9f6770d22e0805807265c">TargetImpl::targetDistribution</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp; root_r )</div><div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160;    { <span class="keywordflow">return</span> baseproductdata( staticGuessRoot(root_r) ).registerTarget(); }</div><div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160;</div><div class="line"><a name="l01796"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#a07a4ae56efbc27679a48d3dfa305b2ac"> 1796</a></span>&#160;    std::string <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a07a4ae56efbc27679a48d3dfa305b2ac">TargetImpl::targetDistributionRelease</a>()<span class="keyword"> const</span></div><div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> baseproductdata( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a399da7ab141cf4275c93e5064fb6f565">_root</a> ).registerRelease(); }</div><div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160;    <span class="comment">// static version:</span></div><div class="line"><a name="l01799"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#ad37f637e923a6d18bc20c0885463c12b"> 1799</a></span>&#160;    std::string <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a07a4ae56efbc27679a48d3dfa305b2ac">TargetImpl::targetDistributionRelease</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp; root_r )</div><div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160;    { <span class="keywordflow">return</span> baseproductdata( staticGuessRoot(root_r) ).registerRelease();}</div><div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160;</div><div class="line"><a name="l01802"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#af901ee1d5be54161574873a896b3917c"> 1802</a></span>&#160;    std::string <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#af901ee1d5be54161574873a896b3917c">TargetImpl::targetDistributionFlavor</a>()<span class="keyword"> const</span></div><div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> baseproductdata( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a399da7ab141cf4275c93e5064fb6f565">_root</a> ).registerFlavor(); }</div><div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160;    <span class="comment">// static version:</span></div><div class="line"><a name="l01805"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#aa6d3c15dcf264296e06d7b673ed433ec"> 1805</a></span>&#160;    std::string <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#af901ee1d5be54161574873a896b3917c">TargetImpl::targetDistributionFlavor</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp; root_r )</div><div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160;    { <span class="keywordflow">return</span> baseproductdata( staticGuessRoot(root_r) ).registerFlavor();}</div><div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160;</div><div class="line"><a name="l01808"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#a90a637b837bee8c6340df9734a6306f1"> 1808</a></span>&#160;    <a class="code" href="structzypp_1_1Target_1_1DistributionLabel.html">Target::DistributionLabel</a> <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a90a637b837bee8c6340df9734a6306f1">TargetImpl::distributionLabel</a>()<span class="keyword"> const</span></div><div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160;<span class="keyword">    </span>{</div><div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160;      <a class="code" href="structzypp_1_1Target_1_1DistributionLabel.html">Target::DistributionLabel</a> ret;</div><div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160;      <a class="code" href="classzypp_1_1parser_1_1ProductFileData.html">parser::ProductFileData</a> pdata( baseproductdata( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a399da7ab141cf4275c93e5064fb6f565">_root</a> ) );</div><div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160;      ret.<a class="code" href="structzypp_1_1Target_1_1DistributionLabel.html#a28a675402c189816eb8048036f0b232f">shortName</a> = pdata.<a class="code" href="classzypp_1_1parser_1_1ProductFileData.html#a988f50e5c653cd2c757dcd2dabe4ae8f">shortName</a>();</div><div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160;      ret.<a class="code" href="structzypp_1_1Target_1_1DistributionLabel.html#aa83128f699a16efb1fe371984477294e">summary</a> = pdata.<a class="code" href="classzypp_1_1parser_1_1ProductFileData.html#a25515b725799c44bf67c85ca844708d2">summary</a>();</div><div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160;      <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160;    }</div><div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160;    <span class="comment">// static version:</span></div><div class="line"><a name="l01817"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#aaf987c8be06429c74fe26326a392a4b0"> 1817</a></span>&#160;    <a class="code" href="structzypp_1_1Target_1_1DistributionLabel.html">Target::DistributionLabel</a> <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a90a637b837bee8c6340df9734a6306f1">TargetImpl::distributionLabel</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp; root_r )</div><div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160;    {</div><div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160;      <a class="code" href="structzypp_1_1Target_1_1DistributionLabel.html">Target::DistributionLabel</a> ret;</div><div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160;      <a class="code" href="classzypp_1_1parser_1_1ProductFileData.html">parser::ProductFileData</a> pdata( baseproductdata( staticGuessRoot(root_r) ) );</div><div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160;      ret.<a class="code" href="structzypp_1_1Target_1_1DistributionLabel.html#a28a675402c189816eb8048036f0b232f">shortName</a> = pdata.<a class="code" href="classzypp_1_1parser_1_1ProductFileData.html#a988f50e5c653cd2c757dcd2dabe4ae8f">shortName</a>();</div><div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160;      ret.<a class="code" href="structzypp_1_1Target_1_1DistributionLabel.html#aa83128f699a16efb1fe371984477294e">summary</a> = pdata.<a class="code" href="classzypp_1_1parser_1_1ProductFileData.html#a25515b725799c44bf67c85ca844708d2">summary</a>();</div><div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160;      <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160;    }</div><div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160;</div><div class="line"><a name="l01826"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#a777116231fcd65f5c855456b6c3073bd"> 1826</a></span>&#160;    std::string <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a777116231fcd65f5c855456b6c3073bd">TargetImpl::distributionVersion</a>()<span class="keyword"> const</span></div><div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160;<span class="keyword">    </span>{</div><div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160;      <span class="keywordflow">if</span> ( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a627177d4a8ff14890676a1c0da380e37">_distributionVersion</a>.empty() )</div><div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160;      {</div><div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160;        <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a627177d4a8ff14890676a1c0da380e37">_distributionVersion</a> = <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a777116231fcd65f5c855456b6c3073bd">TargetImpl::distributionVersion</a>(<a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a9aab7cfcffbd677912a3a1ba15b670c2">root</a>());</div><div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160;        <span class="keywordflow">if</span> ( !<a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a627177d4a8ff14890676a1c0da380e37">_distributionVersion</a>.empty() )</div><div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160;          <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; <span class="stringliteral">&quot;Remember distributionVersion = &#39;&quot;</span> &lt;&lt; <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a627177d4a8ff14890676a1c0da380e37">_distributionVersion</a> &lt;&lt; <span class="stringliteral">&quot;&#39;&quot;</span> &lt;&lt; endl;</div><div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160;      }</div><div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a627177d4a8ff14890676a1c0da380e37">_distributionVersion</a>;</div><div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160;    }</div><div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160;    <span class="comment">// static version</span></div><div class="line"><a name="l01837"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#a96285a7d67682fa2f9d067e4f2e191f7"> 1837</a></span>&#160;    std::string <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a777116231fcd65f5c855456b6c3073bd">TargetImpl::distributionVersion</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp; root_r )</div><div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160;    {</div><div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160;      std::string <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a777116231fcd65f5c855456b6c3073bd">distributionVersion</a> = baseproductdata( staticGuessRoot(root_r) ).edition().version();</div><div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160;      <span class="keywordflow">if</span> ( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a777116231fcd65f5c855456b6c3073bd">distributionVersion</a>.empty() )</div><div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160;      {</div><div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160;        <span class="comment">// ...But the baseproduct method is not expected to work on RedHat derivatives.</span></div><div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160;        <span class="comment">// On RHEL, Fedora and others the &quot;product version&quot; is determined by the first package</span></div><div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160;        <span class="comment">// providing &#39;system-release&#39;. This value is not hardcoded in YUM and can be configured</span></div><div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160;        <span class="comment">// with the $distroverpkg variable.</span></div><div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160;        scoped_ptr&lt;rpm::RpmDb&gt; tmprpmdb;</div><div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160;        <span class="keywordflow">if</span> ( <a class="code" href="classzypp_1_1ZConfig.html#a9b986f2c40a1aa9e1a2aea3d299210d1">ZConfig::instance</a>().<a class="code" href="classzypp_1_1ZConfig.html#a5a5c16f4c73d1e8613108f7fbb5240fd">systemRoot</a>() == <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a>() )</div><div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>&#160;        {</div><div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160;          <span class="keywordflow">try</span></div><div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160;          {</div><div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160;              tmprpmdb.reset( <span class="keyword">new</span> <a class="code" href="classzypp_1_1target_1_1rpm_1_1RpmDb.html">rpm::RpmDb</a> );</div><div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160;              tmprpmdb-&gt;initDatabase( <span class="comment">/*default ctor uses / but no additional keyring exports */</span> );</div><div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160;          }</div><div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160;          <span class="keywordflow">catch</span>( ... )</div><div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160;          {</div><div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160;            <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160;          }</div><div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160;        }</div><div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160;        <a class="code" href="classzypp_1_1target_1_1rpm_1_1librpmDb_1_1db__const__iterator.html">rpm::librpmDb::db_const_iterator</a> it;</div><div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160;        <span class="keywordflow">if</span> ( it.<a class="code" href="classzypp_1_1target_1_1rpm_1_1librpmDb_1_1db__const__iterator.html#a3e4fc8c41c50d98717a8c5b357f2ab6e">findByProvides</a>( <a class="code" href="classzypp_1_1ZConfig.html#a9b986f2c40a1aa9e1a2aea3d299210d1">ZConfig::instance</a>().<a class="code" href="classzypp_1_1ZConfig.html#aeecbb04f0da7d61e957276ddee1377ff">distroverpkg</a>() ) )</div><div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160;          <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a777116231fcd65f5c855456b6c3073bd">distributionVersion</a> = it-&gt;tag_version();</div><div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160;      }</div><div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a777116231fcd65f5c855456b6c3073bd">distributionVersion</a>;</div><div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160;    }</div><div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160;</div><div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160;</div><div class="line"><a name="l01867"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#ab73a5df48db88ee0ca75b23302151aa1"> 1867</a></span>&#160;    std::string <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#ab73a5df48db88ee0ca75b23302151aa1">TargetImpl::distributionFlavor</a>()<span class="keyword"> const</span></div><div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160;<span class="keyword">    </span>{</div><div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160;      <span class="keywordflow">return</span> firstNonEmptyLineIn( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#ad12090f70667f900edbb3ea69eb1f6d2">home</a>() / <span class="stringliteral">&quot;LastDistributionFlavor&quot;</span> );</div><div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160;    }</div><div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160;    <span class="comment">// static version:</span></div><div class="line"><a name="l01872"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#aba69399b477fb0ab6473e1e13f934dcf"> 1872</a></span>&#160;    std::string <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#ab73a5df48db88ee0ca75b23302151aa1">TargetImpl::distributionFlavor</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp; root_r )</div><div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160;    {</div><div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160;      <span class="keywordflow">return</span> firstNonEmptyLineIn( staticGuessRoot(root_r) / <span class="stringliteral">&quot;/var/lib/zypp/LastDistributionFlavor&quot;</span> );</div><div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160;    }</div><div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160;</div><div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160;    <span class="keyword">namespace</span></div><div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160;    {</div><div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160;      std::string guessAnonymousUniqueId( <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp; root_r )</div><div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160;      {</div><div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160;        <span class="comment">// bsc#1024741: Omit creating a new uid for chrooted systems (if it already has one, fine)</span></div><div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160;        std::string ret( firstNonEmptyLineIn( root_r / <span class="stringliteral">&quot;/var/lib/zypp/AnonymousUniqueId&quot;</span> ) );</div><div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160;        <span class="keywordflow">if</span> ( ret.<a class="code" href="classzypp_1_1parser_1_1ProductFileData.html#a1fb4dfcabcc567bfe347932b38192aa8">empty</a>() &amp;&amp; root_r != <span class="stringliteral">&quot;/&quot;</span> )</div><div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160;        {</div><div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160;          <span class="comment">// if it has nonoe, use the outer systems one</span></div><div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;          ret = firstNonEmptyLineIn( <span class="stringliteral">&quot;/var/lib/zypp/AnonymousUniqueId&quot;</span> );</div><div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160;        }</div><div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160;        <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160;      }</div><div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;    }</div><div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160;</div><div class="line"><a name="l01893"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#aedb4144179e72885dc11efeb31bbdcfc"> 1893</a></span>&#160;    std::string <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#aedb4144179e72885dc11efeb31bbdcfc">TargetImpl::anonymousUniqueId</a>()<span class="keyword"> const</span></div><div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160;<span class="keyword">    </span>{</div><div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160;      <span class="keywordflow">return</span> guessAnonymousUniqueId( <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a9aab7cfcffbd677912a3a1ba15b670c2">root</a>() );</div><div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160;    }</div><div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160;    <span class="comment">// static version:</span></div><div class="line"><a name="l01898"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#a938f97806e991c7842152bcf25a65c60"> 1898</a></span>&#160;    std::string <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#aedb4144179e72885dc11efeb31bbdcfc">TargetImpl::anonymousUniqueId</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp; root_r )</div><div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160;    {</div><div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160;      <span class="keywordflow">return</span> guessAnonymousUniqueId( staticGuessRoot(root_r) );</div><div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160;    }</div><div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160;</div><div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160;</div><div class="line"><a name="l01905"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#ac7a55b8e1e625010623658f814d57c9d"> 1905</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#ac7a55b8e1e625010623658f814d57c9d">TargetImpl::installSrcPackage</a>( <span class="keyword">const</span> SrcPackage_constPtr &amp; srcPackage_r )</div><div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160;    {</div><div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160;      <span class="comment">// provide on local disk</span></div><div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160;      <a class="code" href="classzypp_1_1AutoDispose.html">ManagedFile</a> localfile = <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a37c77e5b26b10c9dd3a375c59c477b8d">provideSrcPackage</a>(srcPackage_r);</div><div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160;      <span class="comment">// create a installation progress report proxy</span></div><div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160;      <a class="code" href="classzypp_1_1target_1_1RpmInstallPackageReceiver.html">RpmInstallPackageReceiver</a> progress( srcPackage_r );</div><div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160;      progress.<a class="code" href="structzypp_1_1callback_1_1ReceiveReport.html#a27f78bea716c6a96d0f2ea009ad1c1b2">connect</a>(); <span class="comment">// disconnected on destruction.</span></div><div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160;      <span class="comment">// install it</span></div><div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160;      <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a73510ff231400d6bb267040360acdd33">rpm</a>().<a class="code" href="classzypp_1_1target_1_1rpm_1_1RpmDb.html#a1e1ba0d8329d9118fe1f5b106a20788e">installPackage</a> ( localfile );</div><div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160;    }</div><div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160;</div><div class="line"><a name="l01916"></a><span class="lineno"><a class="line" href="classzypp_1_1target_1_1TargetImpl.html#a37c77e5b26b10c9dd3a375c59c477b8d"> 1916</a></span>&#160;    <a class="code" href="classzypp_1_1AutoDispose.html">ManagedFile</a> <a class="code" href="classzypp_1_1target_1_1TargetImpl.html#a37c77e5b26b10c9dd3a375c59c477b8d">TargetImpl::provideSrcPackage</a>( <span class="keyword">const</span> SrcPackage_constPtr &amp; srcPackage_r )</div><div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160;    {</div><div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160;      <span class="comment">// provide on local disk</span></div><div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160;      <a class="code" href="classzypp_1_1repo_1_1RepoMediaAccess.html">repo::RepoMediaAccess</a> access_r;</div><div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160;      <a class="code" href="classzypp_1_1repo_1_1SrcPackageProvider.html">repo::SrcPackageProvider</a> prov( access_r );</div><div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160;      <span class="keywordflow">return</span> prov.<a class="code" href="classzypp_1_1repo_1_1SrcPackageProvider.html#af1df986c8a75172cc34009342cc78297">provideSrcPackage</a>( srcPackage_r );</div><div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160;    }</div><div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;  } <span class="comment">// namespace target</span></div><div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160;<span class="comment"></span>} <span class="comment">// namespace zypp</span></div><div class="ttc" id="namespacezypp_1_1target_html_ab0730e3a9d83b309b57c03bcdd53c81f"><div class="ttname"><a href="namespacezypp_1_1target.html#ab0730e3a9d83b309b57c03bcdd53c81f">zypp::target::fileMissing</a></div><div class="ttdeci">static bool fileMissing(const Pathname &amp;pathname)</div><div class="ttdoc">helper functor</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l00749">TargetImpl.cc:749</a></div></div>
<div class="ttc" id="structzypp_1_1json_1_1Object_html_a451ce347e9e8368ceed5752afe2d6dc8"><div class="ttname"><a href="structzypp_1_1json_1_1Object.html#a451ce347e9e8368ceed5752afe2d6dc8">zypp::json::Object::asJSON</a></div><div class="ttdeci">std::string asJSON() const</div><div class="ttdoc">JSON representation.</div><div class="ttdef"><b>Definition:</b> <a href="Json_8h_source.html#l00344">Json.h:344</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_ac995a71686e4a432f131ba4bb7e872e8"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#ac995a71686e4a432f131ba4bb7e872e8">zypp::target::TargetImpl::commit</a></div><div class="ttdeci">ZYppCommitResult commit(ResPool pool_r, const ZYppCommitPolicy &amp;policy_r)</div><div class="ttdoc">Commit changes in the pool.</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l01146">TargetImpl.cc:1146</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Pool_html_a945ddc025815e6353c5824bfac45c7c3"><div class="ttname"><a href="classzypp_1_1sat_1_1Pool.html#a945ddc025815e6353c5824bfac45c7c3">zypp::sat::Pool::setRebootNeededIdents</a></div><div class="ttdeci">void setRebootNeededIdents(const Queue &amp;rebootNeeded_r)</div><div class="ttdoc">Set ident list of all solvables that trigger the &quot;reboot needed&quot; flag.</div><div class="ttdef"><b>Definition:</b> <a href="Pool_8cc_source.html#l00247">Pool.cc:247</a></div></div>
<div class="ttc" id="namespacezypp_1_1target_1_1rpm_html_a4c4781cc6d1baa791e7b97b8093beeb9af8bbc799b033021c660dd386218fdb24"><div class="ttname"><a href="namespacezypp_1_1target_1_1rpm.html#a4c4781cc6d1baa791e7b97b8093beeb9af8bbc799b033021c660dd386218fdb24">zypp::target::rpm::RPMINST_EXCLUDEDOCS</a></div><div class="ttdef"><b>Definition:</b> <a href="RpmFlags_8h_source.html#l00040">RpmFlags.h:40</a></div></div>
<div class="ttc" id="namespacezypp_1_1str_html_af527b575ab4e9356e364abccfd44ddcf"><div class="ttname"><a href="namespacezypp_1_1str.html#af527b575ab4e9356e364abccfd44ddcf">zypp::str::splitEscaped</a></div><div class="ttdeci">unsigned splitEscaped(const C_Str &amp;line_r, TOutputIterator result_r, const C_Str &amp;sepchars_r=&quot; \t&quot;, bool withEmpty=false)</div><div class="ttdoc">Split line_r into words with respect to escape delimeters.</div><div class="ttdef"><b>Definition:</b> <a href="String_8h_source.html#l00561">String.h:561</a></div></div>
<div class="ttc" id="namespacezypp_1_1filesystem_html_abfb7f00fc9ec45c94eb35f789b980817"><div class="ttname"><a href="namespacezypp_1_1filesystem.html#abfb7f00fc9ec45c94eb35f789b980817">zypp::filesystem::assert_dir</a></div><div class="ttdeci">int assert_dir(const Pathname &amp;path, unsigned mode)</div><div class="ttdoc">Like 'mkdir -p'.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8cc_source.html#l00320">PathInfo.cc:320</a></div></div>
<div class="ttc" id="structzypp_1_1target_1_1rpm_1_1InstallResolvableReport_html_aae72803397372c1d5881384936b884b9a80f89ca498a1b09a458fa6e667154d92"><div class="ttname"><a href="structzypp_1_1target_1_1rpm_1_1InstallResolvableReport.html#aae72803397372c1d5881384936b884b9a80f89ca498a1b09a458fa6e667154d92">zypp::target::rpm::InstallResolvableReport::RPM_NODEPS_FORCE</a></div><div class="ttdoc">only this one used</div><div class="ttdef"><b>Definition:</b> <a href="ZYppCallbacks_8h_source.html#l00536">ZYppCallbacks.h:536</a></div></div>
<div class="ttc" id="Gettext_8h_html"><div class="ttname"><a href="Gettext_8h.html">Gettext.h</a></div><div class="ttdoc">Interface to gettext.</div></div>
<div class="ttc" id="structzypp_1_1callback_1_1SendReport_html"><div class="ttname"><a href="structzypp_1_1callback_1_1SendReport.html">zypp::callback::SendReport</a></div><div class="ttdef"><b>Definition:</b> <a href="Callback_8h_source.html#l00236">Callback.h:236</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1rpm_1_1RpmDb_html"><div class="ttname"><a href="classzypp_1_1target_1_1rpm_1_1RpmDb.html">zypp::target::rpm::RpmDb</a></div><div class="ttdoc">Interface to the rpm program.</div><div class="ttdef"><b>Definition:</b> <a href="RpmDb_8h_source.html#l00047">RpmDb.h:47</a></div></div>
<div class="ttc" id="classzypp_1_1Product_html"><div class="ttname"><a href="classzypp_1_1Product.html">zypp::Product</a></div><div class="ttdoc">Product interface.</div><div class="ttdef"><b>Definition:</b> <a href="Product_8h_source.html#l00032">Product.h:32</a></div></div>
<div class="ttc" id="group__ZYPP__BASE__LOGGER__MACROS_html_ga552f8ec9d8e5b4efa04839a129104818"><div class="ttname"><a href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a></div><div class="ttdeci">#define MIL</div><div class="ttdef"><b>Definition:</b> <a href="Logger_8h_source.html#l00079">Logger.h:79</a></div></div>
<div class="ttc" id="classzypp_1_1Resolver_html_a321eac659804e44ebbdf4f02305be03f"><div class="ttname"><a href="classzypp_1_1Resolver.html#a321eac659804e44ebbdf4f02305be03f">zypp::Resolver::getTransaction</a></div><div class="ttdeci">sat::Transaction getTransaction()</div><div class="ttdoc">Return the Transaction computed by the last solver run.</div><div class="ttdef"><b>Definition:</b> <a href="Resolver_8cc_source.html#l00074">Resolver.cc:74</a></div></div>
<div class="ttc" id="classzypp_1_1Resolver_html_ac34f765bc749ab37bcded4815087c179"><div class="ttname"><a href="classzypp_1_1Resolver.html#ac34f765bc749ab37bcded4815087c179">zypp::Resolver::upgradingRepos</a></div><div class="ttdeci">bool upgradingRepos() const</div><div class="ttdoc">Whether there is at least one UpgradeRepo request pending.</div><div class="ttdef"><b>Definition:</b> <a href="Resolver_8cc_source.html#l00137">Resolver.cc:137</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Solvable_html"><div class="ttname"><a href="classzypp_1_1sat_1_1Solvable.html">zypp::sat::Solvable</a></div><div class="ttdoc">A Solvable object within the sat Pool.</div><div class="ttdef"><b>Definition:</b> <a href="Solvable_8h_source.html#l00053">Solvable.h:53</a></div></div>
<div class="ttc" id="classzypp_1_1ExternalProgram_html_ae0369899f0c0f36b68f6001704b90486"><div class="ttname"><a href="classzypp_1_1ExternalProgram.html#ae0369899f0c0f36b68f6001704b90486">zypp::ExternalProgram::command</a></div><div class="ttdeci">const std::string &amp; command() const</div><div class="ttdoc">The command we're executing.</div><div class="ttdef"><b>Definition:</b> <a href="ExternalProgram_8h_source.html#l00169">ExternalProgram.h:169</a></div></div>
<div class="ttc" id="classzypp_1_1ZYppCommitResult_html_adb000f54f4a32d2f1ed2f6765ee358aa"><div class="ttname"><a href="classzypp_1_1ZYppCommitResult.html#adb000f54f4a32d2f1ed2f6765ee358aa">zypp::ZYppCommitResult::TransactionStepList</a></div><div class="ttdeci">std::vector&lt; sat::Transaction::Step &gt; TransactionStepList</div><div class="ttdef"><b>Definition:</b> <a href="ZYppCommitResult_8h_source.html#l00065">ZYppCommitResult.h:65</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1RequestedLocalesFile_html"><div class="ttname"><a href="classzypp_1_1target_1_1RequestedLocalesFile.html">zypp::target::RequestedLocalesFile</a></div><div class="ttdoc">Save and restore locale set from file.</div><div class="ttdef"><b>Definition:</b> <a href="RequestedLocalesFile_8h_source.html#l00035">RequestedLocalesFile.h:35</a></div></div>
<div class="ttc" id="TargetCallbackReceiver_8h_html"><div class="ttname"><a href="TargetCallbackReceiver_8h.html">TargetCallbackReceiver.h</a></div></div>
<div class="ttc" id="namespacezypp_html_aff0a5458dd3d0a9dd37b1484c5787420af41c5acb97a2bfb20b639d92e2397117"><div class="ttname"><a href="namespacezypp.html#aff0a5458dd3d0a9dd37b1484c5787420af41c5acb97a2bfb20b639d92e2397117">zypp::DownloadAsNeeded</a></div><div class="ttdoc">Alternating download and install.</div><div class="ttdef"><b>Definition:</b> <a href="DownloadMode_8h_source.html#l00032">DownloadMode.h:32</a></div></div>
<div class="ttc" id="structzypp_1_1filesystem_1_1DirEntry_html"><div class="ttname"><a href="structzypp_1_1filesystem_1_1DirEntry.html">zypp::filesystem::DirEntry</a></div><div class="ttdoc">Listentry returned by readdir.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8h_source.html#l00532">PathInfo.h:532</a></div></div>
<div class="ttc" id="classzypp_1_1ZYppCommitPolicy_html_ad7e94b1f176f34c44f1771afa203cc0f"><div class="ttname"><a href="classzypp_1_1ZYppCommitPolicy.html#ad7e94b1f176f34c44f1771afa203cc0f">zypp::ZYppCommitPolicy::rpmNoSignature</a></div><div class="ttdeci">ZYppCommitPolicy &amp; rpmNoSignature(bool yesNo_r)</div><div class="ttdoc">Use rpm option –nosignature (default: false)</div><div class="ttdef"><b>Definition:</b> <a href="ZYppCommitPolicy_8cc_source.html#l00089">ZYppCommitPolicy.cc:89</a></div></div>
<div class="ttc" id="classzypp_1_1ResPool_html_aa4ba2fb98cad46b36ee7e2a1997b3d62"><div class="ttname"><a href="classzypp_1_1ResPool.html#aa4ba2fb98cad46b36ee7e2a1997b3d62">zypp::ResPool::getRequestedLocales</a></div><div class="ttdeci">const LocaleSet &amp; getRequestedLocales() const</div><div class="ttdoc">Return the requested locales.</div><div class="ttdef"><b>Definition:</b> <a href="ResPool_8cc_source.html#l00125">ResPool.cc:125</a></div></div>
<div class="ttc" id="classzypp_1_1repo_1_1SrcPackageProvider_html_af1df986c8a75172cc34009342cc78297"><div class="ttname"><a href="classzypp_1_1repo_1_1SrcPackageProvider.html#af1df986c8a75172cc34009342cc78297">zypp::repo::SrcPackageProvider::provideSrcPackage</a></div><div class="ttdeci">ManagedFile provideSrcPackage(const SrcPackage_constPtr &amp;srcPackage_r) const</div><div class="ttdoc">Provide SrcPackage in a local file.</div><div class="ttdef"><b>Definition:</b> <a href="SrcPackageProvider_8cc_source.html#l00036">SrcPackageProvider.cc:36</a></div></div>
<div class="ttc" id="namespacezypp_1_1filesystem_html_a6f2f65cf13b7f686adb9101a1dcd0910"><div class="ttname"><a href="namespacezypp_1_1filesystem.html#a6f2f65cf13b7f686adb9101a1dcd0910">zypp::filesystem::assert_file</a></div><div class="ttdeci">int assert_file(const Pathname &amp;path, unsigned mode)</div><div class="ttdoc">Create an empty file if it does not yet exist.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8cc_source.html#l01133">PathInfo.cc:1133</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Transaction_html_acc041dbe1a42f50a156ef630ade4021ea15ec9f7bfd74232fe760e7e73f95be47"><div class="ttname"><a href="classzypp_1_1sat_1_1Transaction.html#acc041dbe1a42f50a156ef630ade4021ea15ec9f7bfd74232fe760e7e73f95be47">zypp::sat::Transaction::TRANSACTION_MULTIINSTALL</a></div><div class="ttdoc">[M] Install(multiversion) item (</div><div class="ttdef"><b>Definition:</b> <a href="Transaction_8h_source.html#l00067">Transaction.h:67</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_af49b823d86f36816e3c30bff95ec1267"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#af49b823d86f36816e3c30bff95ec1267">zypp::target::TargetImpl::solvfilesPathIsTemp</a></div><div class="ttdeci">bool solvfilesPathIsTemp() const</div><div class="ttdoc">Whether we're using a temp.</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8h_source.html#l00096">TargetImpl.h:96</a></div></div>
<div class="ttc" id="classzypp_1_1filesystem_1_1PathInfo_html_af8223f1087bb62c359f03a51fb32a5a1"><div class="ttname"><a href="classzypp_1_1filesystem_1_1PathInfo.html#af8223f1087bb62c359f03a51fb32a5a1">zypp::filesystem::PathInfo::path</a></div><div class="ttdeci">const Pathname &amp; path() const</div><div class="ttdoc">Return current Pathname.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8h_source.html#l00246">PathInfo.h:246</a></div></div>
<div class="ttc" id="namespacezypp_html_a1547a676c9d1f206e0ed614d42d74c2d"><div class="ttname"><a href="namespacezypp.html#a1547a676c9d1f206e0ed614d42d74c2d">zypp::asString</a></div><div class="ttdeci">std::string asString(const DefaultIntegral&lt; Tp, TInitial &gt; &amp;obj)</div><div class="ttdef"><b>Definition:</b> <a href="DefaultIntegral_8h_source.html#l00098">DefaultIntegral.h:98</a></div></div>
<div class="ttc" id="group__ZYPP__THROW_html_gaf8c3a87d63dd4f26f059eddd62c22864"><div class="ttname"><a href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a></div><div class="ttdeci">#define ZYPP_THROW(EXCPT)</div><div class="ttdoc">Drops a logline and throws the Exception.</div><div class="ttdef"><b>Definition:</b> <a href="Exception_8h_source.html#l00392">Exception.h:392</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Transaction_1_1Step_html_ad163b17a653ef288f582fef461211941"><div class="ttname"><a href="classzypp_1_1sat_1_1Transaction_1_1Step.html#ad163b17a653ef288f582fef461211941">zypp::sat::Transaction::Step::satSolvable</a></div><div class="ttdeci">Solvable satSolvable() const</div><div class="ttdoc">Return the corresponding Solvable.</div><div class="ttdef"><b>Definition:</b> <a href="Transaction_8h_source.html#l00241">Transaction.h:241</a></div></div>
<div class="ttc" id="librpmDb_8h_html"><div class="ttname"><a href="librpmDb_8h.html">librpmDb.h</a></div></div>
<div class="ttc" id="classzypp_1_1ZYppCommitResult_html"><div class="ttname"><a href="classzypp_1_1ZYppCommitResult.html">zypp::ZYppCommitResult</a></div><div class="ttdoc">Result returned from ZYpp::commit.</div><div class="ttdef"><b>Definition:</b> <a href="ZYppCommitResult_8h_source.html#l00062">ZYppCommitResult.h:62</a></div></div>
<div class="ttc" id="classzypp_1_1ZConfig_html_a9b986f2c40a1aa9e1a2aea3d299210d1"><div class="ttname"><a href="classzypp_1_1ZConfig.html#a9b986f2c40a1aa9e1a2aea3d299210d1">zypp::ZConfig::instance</a></div><div class="ttdeci">static ZConfig &amp; instance()</div><div class="ttdoc">Singleton ctor.</div><div class="ttdef"><b>Definition:</b> <a href="solver_2detail_2Resolver_8cc_source.html#l00130">Resolver.cc:130</a></div></div>
<div class="ttc" id="classzypp_1_1ResStatus_html_a6176343dbae9c6face06257622a42c17"><div class="ttname"><a href="classzypp_1_1ResStatus.html#a6176343dbae9c6face06257622a42c17">zypp::ResStatus::isToBeInstalled</a></div><div class="ttdeci">bool isToBeInstalled() const</div><div class="ttdef"><b>Definition:</b> <a href="ResStatus_8h_source.html#l00244">ResStatus.h:244</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a08f984480583f7f2cdbea598340f6676"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a08f984480583f7f2cdbea598340f6676">zypp::target::TargetImpl::clearCache</a></div><div class="ttdeci">void clearCache()</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l00830">TargetImpl.cc:830</a></div></div>
<div class="ttc" id="classzypp_1_1Repository_html_ab624346b583a6b020e08b568cd6f1765"><div class="ttname"><a href="classzypp_1_1Repository.html#ab624346b583a6b020e08b568cd6f1765">zypp::Repository::addSolv</a></div><div class="ttdeci">void addSolv(const Pathname &amp;file_r)</div><div class="ttdoc">Load Solvables from a solv-file.</div><div class="ttdef"><b>Definition:</b> <a href="Repository_8cc_source.html#l00320">Repository.cc:320</a></div></div>
<div class="ttc" id="namespacezypp_1_1filesystem_html_ae16e3e32db135f9dcbd7a36c46114c7c"><div class="ttname"><a href="namespacezypp_1_1filesystem.html#ae16e3e32db135f9dcbd7a36c46114c7c">zypp::filesystem::md5sum</a></div><div class="ttdeci">std::string md5sum(const Pathname &amp;file)</div><div class="ttdoc">Compute a files md5sum.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8cc_source.html#l00977">PathInfo.cc:977</a></div></div>
<div class="ttc" id="classzypp_1_1PluginFrame_html"><div class="ttname"><a href="classzypp_1_1PluginFrame.html">zypp::PluginFrame</a></div><div class="ttdoc">Command frame for communication with PluginScript.</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8h_source.html#l00040">PluginFrame.h:40</a></div></div>
<div class="ttc" id="classzypp_1_1filesystem_1_1PathInfo_html_a76ad73c87053e421fd00b0b6bbc4ec98"><div class="ttname"><a href="classzypp_1_1filesystem_1_1PathInfo.html#a76ad73c87053e421fd00b0b6bbc4ec98">zypp::filesystem::PathInfo::isFile</a></div><div class="ttdeci">bool isFile() const</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8h_source.html#l00289">PathInfo.h:289</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a54ae75c82d2dcc5a8e241a98b2f9d853"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a54ae75c82d2dcc5a8e241a98b2f9d853">zypp::target::TargetImpl::_tmpSolvfilesPath</a></div><div class="ttdeci">Pathname _tmpSolvfilesPath</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8h_source.html#l00099">TargetImpl.h:99</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1rpm_1_1librpmDb_1_1db__const__iterator_html_a3e4fc8c41c50d98717a8c5b357f2ab6e"><div class="ttname"><a href="classzypp_1_1target_1_1rpm_1_1librpmDb_1_1db__const__iterator.html#a3e4fc8c41c50d98717a8c5b357f2ab6e">zypp::target::rpm::librpmDb::db_const_iterator::findByProvides</a></div><div class="ttdeci">bool findByProvides(const std::string &amp;tag_r)</div><div class="ttdoc">Reset to iterate all packages that provide a certain tag.</div><div class="ttdef"><b>Definition:</b> <a href="librpmDb_8cc_source.html#l00826">librpmDb.cc:826</a></div></div>
<div class="ttc" id="namespacezypp_1_1filesystem_html_ab1a313229e3a86d2778f6bf54004ccb1"><div class="ttname"><a href="namespacezypp_1_1filesystem.html#ab1a313229e3a86d2778f6bf54004ccb1">zypp::filesystem::readlink</a></div><div class="ttdeci">int readlink(const Pathname &amp;symlink_r, Pathname &amp;target_r)</div><div class="ttdoc">Like 'readlink'.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8cc_source.html#l00877">PathInfo.cc:877</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1SolvIdentFile_html_ad6d892a227b69327bd176dd061c14a4b"><div class="ttname"><a href="classzypp_1_1target_1_1SolvIdentFile.html#ad6d892a227b69327bd176dd061c14a4b">zypp::target::SolvIdentFile::setData</a></div><div class="ttdeci">void setData(const Data &amp;data_r)</div><div class="ttdoc">Store new Data.</div><div class="ttdef"><b>Definition:</b> <a href="SolvIdentFile_8h_source.html#l00069">SolvIdentFile.h:69</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a8632dcaa02cfda22800c0a4a1920e643"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a8632dcaa02cfda22800c0a4a1920e643">zypp::target::TargetImpl::_autoInstalledFile</a></div><div class="ttdeci">SolvIdentFile _autoInstalledFile</div><div class="ttdoc">user/auto installed database</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8h_source.html#l00219">TargetImpl.h:219</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Queue_html_ab8ae39973f8cc36309a02cfd2e7fbdf3"><div class="ttname"><a href="classzypp_1_1sat_1_1Queue.html#ab8ae39973f8cc36309a02cfd2e7fbdf3">zypp::sat::Queue::value_type</a></div><div class="ttdeci">detail::IdType value_type</div><div class="ttdef"><b>Definition:</b> <a href="Queue_8h_source.html#l00038">Queue.h:38</a></div></div>
<div class="ttc" id="classzypp_1_1Arch_html"><div class="ttname"><a href="classzypp_1_1Arch.html">zypp::Arch</a></div><div class="ttdoc">Architecture.</div><div class="ttdef"><b>Definition:</b> <a href="Arch_8h_source.html#l00036">Arch.h:36</a></div></div>
<div class="ttc" id="classzypp_1_1parser_1_1ProductFileReader_html_aaf4cf7b25dff7e83332e1c0e6083f195"><div class="ttname"><a href="classzypp_1_1parser_1_1ProductFileReader.html#aaf4cf7b25dff7e83332e1c0e6083f195">zypp::parser::ProductFileReader::scanFile</a></div><div class="ttdeci">static ProductFileData scanFile(const Pathname &amp;file_r)</div><div class="ttdoc">Parse one file (or symlink) and return the ProductFileData parsed.</div><div class="ttdef"><b>Definition:</b> <a href="ProductFileReader_8cc_source.html#l00272">ProductFileReader.cc:272</a></div></div>
<div class="ttc" id="namespacezypp_1_1target_html_a848c88b890e5199a9ce4755ab09657e8"><div class="ttname"><a href="namespacezypp_1_1target.html#a848c88b890e5199a9ce4755ab09657e8">zypp::target::updateFileContent</a></div><div class="ttdeci">void updateFileContent(const Pathname &amp;filename, boost::function&lt; bool()&gt; condition, boost::function&lt; string()&gt; value)</div><div class="ttdoc">updates the content of filename if condition is true, setting the content the the value returned by v...</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l00714">TargetImpl.cc:714</a></div></div>
<div class="ttc" id="structzypp_1_1callback_1_1ReceiveReport_html_a27f78bea716c6a96d0f2ea009ad1c1b2"><div class="ttname"><a href="structzypp_1_1callback_1_1ReceiveReport.html#a27f78bea716c6a96d0f2ea009ad1c1b2">zypp::callback::ReceiveReport::connect</a></div><div class="ttdeci">void connect()</div><div class="ttdef"><b>Definition:</b> <a href="Callback_8h_source.html#l00183">Callback.h:183</a></div></div>
<div class="ttc" id="classzypp_1_1HistoryLog_html_a39281bed802920a7646de4f5da1ab003"><div class="ttname"><a href="classzypp_1_1HistoryLog.html#a39281bed802920a7646de4f5da1ab003">zypp::HistoryLog::stampCommand</a></div><div class="ttdeci">void stampCommand()</div><div class="ttdoc">Log info about the current process.</div><div class="ttdef"><b>Definition:</b> <a href="HistoryLog_8cc_source.html#l00220">HistoryLog.cc:220</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1CommitPackageCache_html"><div class="ttname"><a href="classzypp_1_1target_1_1CommitPackageCache.html">zypp::target::CommitPackageCache</a></div><div class="ttdoc">Target::commit helper optimizing package provision.</div><div class="ttdef"><b>Definition:</b> <a href="CommitPackageCache_8h_source.html#l00058">CommitPackageCache.h:58</a></div></div>
<div class="ttc" id="namespacezypp_1_1target_1_1rpm_html_a4c4781cc6d1baa791e7b97b8093beeb9abad4dbd890df97531225e953337a9a5c"><div class="ttname"><a href="namespacezypp_1_1target_1_1rpm.html#a4c4781cc6d1baa791e7b97b8093beeb9abad4dbd890df97531225e953337a9a5c">zypp::target::rpm::RPMINST_NOPOSTTRANS</a></div><div class="ttdef"><b>Definition:</b> <a href="RpmFlags_8h_source.html#l00050">RpmFlags.h:50</a></div></div>
<div class="ttc" id="classzypp_1_1ZYppCommitPolicy_html_a2a873412afe2afd1dc0bb05567fb7de0"><div class="ttname"><a href="classzypp_1_1ZYppCommitPolicy.html#a2a873412afe2afd1dc0bb05567fb7de0">zypp::ZYppCommitPolicy::rpmInstFlags</a></div><div class="ttdeci">ZYppCommitPolicy &amp; rpmInstFlags(target::rpm::RpmInstFlags newFlags_r)</div><div class="ttdoc">The default target::rpm::RpmInstFlags.</div><div class="ttdef"><b>Definition:</b> <a href="ZYppCommitPolicy_8cc_source.html#l00086">ZYppCommitPolicy.cc:86</a></div></div>
<div class="ttc" id="classzypp_1_1ZYppCommitResult_html_a5cdf8961e896b149d286637dff00748a"><div class="ttname"><a href="classzypp_1_1ZYppCommitResult.html#a5cdf8961e896b149d286637dff00748a">zypp::ZYppCommitResult::rTransactionStepList</a></div><div class="ttdeci">TransactionStepList &amp; rTransactionStepList()</div><div class="ttdoc">Manipulate transactionStepList.</div><div class="ttdef"><b>Definition:</b> <a href="ZYppCommitResult_8cc_source.html#l00086">ZYppCommitResult.cc:86</a></div></div>
<div class="ttc" id="namespacezypp_1_1target_1_1rpm_html_a4c4781cc6d1baa791e7b97b8093beeb9a495b978c423d4b43fde7ac2162fab2aa"><div class="ttname"><a href="namespacezypp_1_1target_1_1rpm.html#a4c4781cc6d1baa791e7b97b8093beeb9a495b978c423d4b43fde7ac2162fab2aa">zypp::target::rpm::RPMINST_NODEPS</a></div><div class="ttdef"><b>Definition:</b> <a href="RpmFlags_8h_source.html#l00043">RpmFlags.h:43</a></div></div>
<div class="ttc" id="classzypp_1_1ZYppCommitResult_html_af22c0c2759e0036fa206e072fd350f2e"><div class="ttname"><a href="classzypp_1_1ZYppCommitResult.html#af22c0c2759e0036fa206e072fd350f2e">zypp::ZYppCommitResult::transaction</a></div><div class="ttdeci">const sat::Transaction &amp; transaction() const</div><div class="ttdoc">The full transaction list.</div><div class="ttdef"><b>Definition:</b> <a href="ZYppCommitResult_8cc_source.html#l00077">ZYppCommitResult.cc:77</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1RpmPostTransCollector_html_acf0245f2ee4dba0cf10b6c94a7d02358"><div class="ttname"><a href="classzypp_1_1target_1_1RpmPostTransCollector.html#acf0245f2ee4dba0cf10b6c94a7d02358">zypp::target::RpmPostTransCollector::discardScripts</a></div><div class="ttdeci">void discardScripts()</div><div class="ttdoc">Discard all remembered scrips.</div><div class="ttdef"><b>Definition:</b> <a href="RpmPostTransCollector_8cc_source.html#l00233">RpmPostTransCollector.cc:233</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Transaction_1_1Step_html_a731c2fac8118f0ab2dfaa45a6ee7f825"><div class="ttname"><a href="classzypp_1_1sat_1_1Transaction_1_1Step.html#a731c2fac8118f0ab2dfaa45a6ee7f825">zypp::sat::Transaction::Step::stepStage</a></div><div class="ttdeci">StepStage stepStage() const</div><div class="ttdoc">Step action result.</div><div class="ttdef"><b>Definition:</b> <a href="Transaction_8cc_source.html#l00389">Transaction.cc:389</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1SolvIdentFile_html_a527c1b6ef4fdf804a82c6b103634b41d"><div class="ttname"><a href="classzypp_1_1target_1_1SolvIdentFile.html#a527c1b6ef4fdf804a82c6b103634b41d">zypp::target::SolvIdentFile::file</a></div><div class="ttdeci">const Pathname &amp; file() const</div><div class="ttdoc">Return the file path.</div><div class="ttdef"><b>Definition:</b> <a href="SolvIdentFile_8h_source.html#l00046">SolvIdentFile.h:46</a></div></div>
<div class="ttc" id="group__ZYPP__BASE__LOGGER__MACROS_html_gafeeffe52c8fd59db7c61cf8b02042dbf"><div class="ttname"><a href="group__ZYPP__BASE__LOGGER__MACROS.html#gafeeffe52c8fd59db7c61cf8b02042dbf">INT</a></div><div class="ttdeci">#define INT</div><div class="ttdef"><b>Definition:</b> <a href="Logger_8h_source.html#l00083">Logger.h:83</a></div></div>
<div class="ttc" id="namespacezypp_1_1filesystem_html_a15c6f1f768ee1e92f580f2ffec15161f"><div class="ttname"><a href="namespacezypp_1_1filesystem.html#a15c6f1f768ee1e92f580f2ffec15161f">zypp::filesystem::chmod</a></div><div class="ttdeci">int chmod(const Pathname &amp;path, mode_t mode)</div><div class="ttdoc">Like 'chmod'.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8cc_source.html#l01045">PathInfo.cc:1045</a></div></div>
<div class="ttc" id="classzypp_1_1PoolItem_html_a6788d8006e6afb88ebc4e11151d20e2c"><div class="ttname"><a href="classzypp_1_1PoolItem.html#a6788d8006e6afb88ebc4e11151d20e2c">zypp::PoolItem::status</a></div><div class="ttdeci">ResStatus &amp; status() const</div><div class="ttdoc">Returns the current status.</div><div class="ttdef"><b>Definition:</b> <a href="PoolItem_8cc_source.html#l00204">PoolItem.cc:204</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1rpm_1_1RpmDb_html_a1e1ba0d8329d9118fe1f5b106a20788e"><div class="ttname"><a href="classzypp_1_1target_1_1rpm_1_1RpmDb.html#a1e1ba0d8329d9118fe1f5b106a20788e">zypp::target::rpm::RpmDb::installPackage</a></div><div class="ttdeci">void installPackage(const Pathname &amp;filename, RpmInstFlags flags=RPMINST_NONE)</div><div class="ttdoc">install rpm package</div><div class="ttdef"><b>Definition:</b> <a href="RpmDb_8cc_source.html#l01957">RpmDb.cc:1957</a></div></div>
<div class="ttc" id="namespacezypp_1_1target_1_1rpm_html_a4c4781cc6d1baa791e7b97b8093beeb9a932d531761bf8ffe0d753e87dcb72360"><div class="ttname"><a href="namespacezypp_1_1target_1_1rpm.html#a4c4781cc6d1baa791e7b97b8093beeb9a932d531761bf8ffe0d753e87dcb72360">zypp::target::rpm::RPMINST_JUSTDB</a></div><div class="ttdef"><b>Definition:</b> <a href="RpmFlags_8h_source.html#l00045">RpmFlags.h:45</a></div></div>
<div class="ttc" id="classzypp_1_1ZYppCommitPolicy_html_a59f6a1ec6fbfecadbb22564170cfd8dc"><div class="ttname"><a href="classzypp_1_1ZYppCommitPolicy.html#a59f6a1ec6fbfecadbb22564170cfd8dc">zypp::ZYppCommitPolicy::dryRun</a></div><div class="ttdeci">ZYppCommitPolicy &amp; dryRun(bool yesNo_r)</div><div class="ttdoc">Set dry run (default: false).</div><div class="ttdef"><b>Definition:</b> <a href="ZYppCommitPolicy_8cc_source.html#l00072">ZYppCommitPolicy.cc:72</a></div></div>
<div class="ttc" id="classzypp_1_1ResPool_html_ade410e128f912663e67d7741a3049e9e"><div class="ttname"><a href="classzypp_1_1ResPool.html#ade410e128f912663e67d7741a3049e9e">zypp::ResPool::byKindBegin</a></div><div class="ttdeci">byKind_iterator byKindBegin(const ResKind &amp;kind_r) const</div><div class="ttdef"><b>Definition:</b> <a href="ResPool_8h_source.html#l00261">ResPool.h:261</a></div></div>
<div class="ttc" id="structzypp_1_1Target_1_1DistributionLabel_html_aa83128f699a16efb1fe371984477294e"><div class="ttname"><a href="structzypp_1_1Target_1_1DistributionLabel.html#aa83128f699a16efb1fe371984477294e">zypp::Target::DistributionLabel::summary</a></div><div class="ttdeci">std::string summary</div><div class="ttdef"><b>Definition:</b> <a href="Target_8h_source.html#l00166">Target.h:166</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a36a81c64f16d3d4658ca677d08eb2b9b"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a36a81c64f16d3d4658ca677d08eb2b9b">zypp::target::TargetImpl::updateAutoInstalled</a></div><div class="ttdeci">void updateAutoInstalled()</div><div class="ttdoc">Update the database of autoinstalled packages.</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l01781">TargetImpl.cc:1781</a></div></div>
<div class="ttc" id="Gettext_8h_html_a196fa0d25523f7c73d4d3a89fcd0000d"><div class="ttname"><a href="Gettext_8h.html#a196fa0d25523f7c73d4d3a89fcd0000d">N_</a></div><div class="ttdeci">#define N_(MSG)</div><div class="ttdef"><b>Definition:</b> <a href="Gettext_8h_source.html#l00034">Gettext.h:34</a></div></div>
<div class="ttc" id="classzypp_1_1ZYppCommitPolicy_html_a3bf3022dc37dfe905a595dcb9e2a6a0f"><div class="ttname"><a href="classzypp_1_1ZYppCommitPolicy.html#a3bf3022dc37dfe905a595dcb9e2a6a0f">zypp::ZYppCommitPolicy::rpmExcludeDocs</a></div><div class="ttdeci">ZYppCommitPolicy &amp; rpmExcludeDocs(bool yesNo_r)</div><div class="ttdoc">Use rpm option –excludedocs (default: false)</div><div class="ttdef"><b>Definition:</b> <a href="ZYppCommitPolicy_8cc_source.html#l00092">ZYppCommitPolicy.cc:92</a></div></div>
<div class="ttc" id="classzypp_1_1filesystem_1_1Pathname_html_adf90bcfd5dad7bf694772a260d8749cf"><div class="ttname"><a href="classzypp_1_1filesystem_1_1Pathname.html#adf90bcfd5dad7bf694772a260d8749cf">zypp::filesystem::Pathname::c_str</a></div><div class="ttdeci">const char * c_str() const</div><div class="ttdoc">String representation.</div><div class="ttdef"><b>Definition:</b> <a href="Pathname_8h_source.html#l00109">Pathname.h:109</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1rpm_1_1RpmDb_html_a16e9997481938d6666abc032ad0edf86"><div class="ttname"><a href="classzypp_1_1target_1_1rpm_1_1RpmDb.html#a16e9997481938d6666abc032ad0edf86">zypp::target::rpm::RpmDb::timestamp</a></div><div class="ttdeci">Date timestamp() const</div><div class="ttdoc">timestamp of the rpm database (last modification)</div><div class="ttdef"><b>Definition:</b> <a href="RpmDb_8cc_source.html#l00261">RpmDb.cc:261</a></div></div>
<div class="ttc" id="Pool_8h_html"><div class="ttname"><a href="Pool_8h.html">Pool.h</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a627177d4a8ff14890676a1c0da380e37"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a627177d4a8ff14890676a1c0da380e37">zypp::target::TargetImpl::_distributionVersion</a></div><div class="ttdeci">std::string _distributionVersion</div><div class="ttdoc">Cache distributionVersion.</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8h_source.html#l00223">TargetImpl.h:223</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_ad769e3431d45346cbe2a42dd01dd22bc"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#ad769e3431d45346cbe2a42dd01dd22bc">zypp::target::TargetImpl::commitFindFileConflicts</a></div><div class="ttdeci">void commitFindFileConflicts(const ZYppCommitPolicy &amp;policy_r, ZYppCommitResult &amp;result_r)</div><div class="ttdoc">Commit helper checking for file conflicts after download.</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8commitFindFileConflicts_8cc_source.html#l00122">TargetImpl.commitFindFileConflicts.cc:122</a></div></div>
<div class="ttc" id="TargetImpl_8h_html"><div class="ttname"><a href="TargetImpl_8h.html">TargetImpl.h</a></div></div>
<div class="ttc" id="classzypp_1_1PluginExecutor_html"><div class="ttname"><a href="classzypp_1_1PluginExecutor.html">zypp::PluginExecutor</a></div><div class="ttdoc">Parallel execution of stateful PluginScripts.</div><div class="ttdef"><b>Definition:</b> <a href="PluginExecutor_8h_source.html#l00041">PluginExecutor.h:41</a></div></div>
<div class="ttc" id="namespacezypp_1_1target_1_1rpm_html_a4c4781cc6d1baa791e7b97b8093beeb9ab9a84f7b91905c4a4afe892460e92a24"><div class="ttname"><a href="namespacezypp_1_1target_1_1rpm.html#a4c4781cc6d1baa791e7b97b8093beeb9ab9a84f7b91905c4a4afe892460e92a24">zypp::target::rpm::RPMINST_TEST</a></div><div class="ttdef"><b>Definition:</b> <a href="RpmFlags_8h_source.html#l00049">RpmFlags.h:49</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1HardLocksFile_html_a04db6ebb2e91ce093eb16372c2aee30b"><div class="ttname"><a href="classzypp_1_1target_1_1HardLocksFile.html#a04db6ebb2e91ce093eb16372c2aee30b">zypp::target::HardLocksFile::setData</a></div><div class="ttdeci">void setData(const Data &amp;data_r)</div><div class="ttdoc">Store new Data.</div><div class="ttdef"><b>Definition:</b> <a href="HardLocksFile_8h_source.html#l00073">HardLocksFile.h:73</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Pool_html_a3808298913ad7c27d661a8f7748bd3d5"><div class="ttname"><a href="classzypp_1_1sat_1_1Pool.html#a3808298913ad7c27d661a8f7748bd3d5">zypp::sat::Pool::setAutoInstalled</a></div><div class="ttdeci">void setAutoInstalled(const Queue &amp;autoInstalled_r)</div><div class="ttdoc">Set ident list of all autoinstalled solvables.</div><div class="ttdef"><b>Definition:</b> <a href="Pool_8cc_source.html#l00244">Pool.cc:244</a></div></div>
<div class="ttc" id="classzypp_1_1PoolItem_html_ab56be8572917da8404c45dec8f448412"><div class="ttname"><a href="classzypp_1_1PoolItem.html#ab56be8572917da8404c45dec8f448412">zypp::PoolItem::buddy</a></div><div class="ttdeci">sat::Solvable buddy() const</div><div class="ttdoc">Return the buddy we share our status object with.</div><div class="ttdef"><b>Definition:</b> <a href="PoolItem_8cc_source.html#l00206">PoolItem.cc:206</a></div></div>
<div class="ttc" id="namespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div><div class="ttdef"><b>Definition:</b> <a href="Arch_8h_source.html#l00344">Arch.h:344</a></div></div>
<div class="ttc" id="classzypp_1_1IdString_html"><div class="ttname"><a href="classzypp_1_1IdString.html">zypp::IdString</a></div><div class="ttdoc">Access to the sat-pools string space.</div><div class="ttdef"><b>Definition:</b> <a href="IdString_8h_source.html#l00041">IdString.h:41</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Transaction_html"><div class="ttname"><a href="classzypp_1_1sat_1_1Transaction.html">zypp::sat::Transaction</a></div><div class="ttdoc">Libsolv transaction wrapper.</div><div class="ttdef"><b>Definition:</b> <a href="Transaction_8h_source.html#l00051">Transaction.h:51</a></div></div>
<div class="ttc" id="Easy_8h_html_a7887338b8a0727becb37d8061fcbfc0e"><div class="ttname"><a href="Easy_8h.html#a7887338b8a0727becb37d8061fcbfc0e">for_</a></div><div class="ttdeci">#define for_(IT, BEG, END)</div><div class="ttdoc">Convenient for-loops using iterator.</div><div class="ttdef"><b>Definition:</b> <a href="Easy_8h_source.html#l00027">Easy.h:27</a></div></div>
<div class="ttc" id="classzypp_1_1filesystem_1_1TmpPath_html_a6891667fdbc2f2aa70a5f97c66422786"><div class="ttname"><a href="classzypp_1_1filesystem_1_1TmpPath.html#a6891667fdbc2f2aa70a5f97c66422786">zypp::filesystem::TmpPath::path</a></div><div class="ttdeci">Pathname path() const</div><div class="ttdef"><b>Definition:</b> <a href="TmpPath_8cc_source.html#l00146">TmpPath.cc:146</a></div></div>
<div class="ttc" id="classzypp_1_1Edition_html"><div class="ttname"><a href="classzypp_1_1Edition.html">zypp::Edition</a></div><div class="ttdoc">Edition represents [epoch:]version[-release]</div><div class="ttdef"><b>Definition:</b> <a href="Edition_8h_source.html#l00060">Edition.h:60</a></div></div>
<div class="ttc" id="classzypp_1_1ShutdownLock_html"><div class="ttname"><a href="classzypp_1_1ShutdownLock.html">zypp::ShutdownLock</a></div><div class="ttdoc">Attempts to create a lock to prevent the system from going into hibernate/shutdown.</div><div class="ttdef"><b>Definition:</b> <a href="ShutdownLock__p_8h_source.html#l00031">ShutdownLock_p.h:31</a></div></div>
<div class="ttc" id="classzypp_1_1ResStatus_html_a9d180246b068f4b649bf9b505a4d7044aa87314f0bf49771b1e7020fddd9a0711"><div class="ttname"><a href="classzypp_1_1ResStatus.html#a9d180246b068f4b649bf9b505a4d7044aa87314f0bf49771b1e7020fddd9a0711">zypp::ResStatus::USER</a></div><div class="ttdef"><b>Definition:</b> <a href="ResStatus_8h_source.html#l00111">ResStatus.h:111</a></div></div>
<div class="ttc" id="classzypp_1_1ResStatus_html_ae1c6d1c7e500353c6d941a93468b4d4a"><div class="ttname"><a href="classzypp_1_1ResStatus.html#ae1c6d1c7e500353c6d941a93468b4d4a">zypp::ResStatus::resetTransact</a></div><div class="ttdeci">bool resetTransact(TransactByValue causer_r)</div><div class="ttdoc">Not the same as setTransact( false ).</div><div class="ttdef"><b>Definition:</b> <a href="ResStatus_8h_source.html#l00476">ResStatus.h:476</a></div></div>
<div class="ttc" id="namespacezypp_html_aff0a5458dd3d0a9dd37b1484c5787420ae94073d823aada00d826a0859990e356"><div class="ttname"><a href="namespacezypp.html#aff0a5458dd3d0a9dd37b1484c5787420ae94073d823aada00d826a0859990e356">zypp::DownloadInHeaps</a></div><div class="ttdoc">Similar to DownloadInAdvance, but try to split the transaction into heaps, where at the end of each h...</div><div class="ttdef"><b>Definition:</b> <a href="DownloadMode_8h_source.html#l00029">DownloadMode.h:29</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a9778c3068c8076d560ae928306b0cee8"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a9778c3068c8076d560ae928306b0cee8">zypp::target::TargetImpl::providesFile</a></div><div class="ttdeci">bool providesFile(const std::string &amp;path_str, const std::string &amp;name_str) const</div><div class="ttdoc">If the package is installed and provides the file Needed to evaluate split provides during Resolver::...</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l01696">TargetImpl.cc:1696</a></div></div>
<div class="ttc" id="classzypp_1_1Product_html_a28765039103a7e307d2f0670983849ed"><div class="ttname"><a href="classzypp_1_1Product.html#a28765039103a7e307d2f0670983849ed">zypp::Product::constPtr</a></div><div class="ttdeci">TraitsType::constPtrType constPtr</div><div class="ttdef"><b>Definition:</b> <a href="Product_8h_source.html#l00038">Product.h:38</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Transaction_html_a2368b92f05f0bb646028cb853bb3f02f"><div class="ttname"><a href="classzypp_1_1sat_1_1Transaction.html#a2368b92f05f0bb646028cb853bb3f02f">zypp::sat::Transaction::end</a></div><div class="ttdeci">const_iterator end() const</div><div class="ttdoc">Iterator behind the last TransactionStep.</div><div class="ttdef"><b>Definition:</b> <a href="Transaction_8cc_source.html#l00341">Transaction.cc:341</a></div></div>
<div class="ttc" id="classzypp_1_1filesystem_1_1TmpFile_html"><div class="ttname"><a href="classzypp_1_1filesystem_1_1TmpFile.html">zypp::filesystem::TmpFile</a></div><div class="ttdoc">Provide a new empty temporary file and delete it when no longer needed.</div><div class="ttdef"><b>Definition:</b> <a href="TmpPath_8h_source.html#l00127">TmpPath.h:127</a></div></div>
<div class="ttc" id="classzypp_1_1Edition_html_a2a7474c4e9591db9d6edc1b173138a3f"><div class="ttname"><a href="classzypp_1_1Edition.html#a2a7474c4e9591db9d6edc1b173138a3f">zypp::Edition::epoch_t</a></div><div class="ttdeci">unsigned epoch_t</div><div class="ttdoc">Type of an epoch.</div><div class="ttdef"><b>Definition:</b> <a href="Edition_8h_source.html#l00064">Edition.h:64</a></div></div>
<div class="ttc" id="namespacezypp_1_1target_html_a97f6495f9b6a0e6594adfd13002152d1"><div class="ttname"><a href="namespacezypp_1_1target.html#a97f6495f9b6a0e6594adfd13002152d1">zypp::target::writeUpgradeTestcase</a></div><div class="ttdeci">void writeUpgradeTestcase()</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l00249">TargetImpl.cc:249</a></div></div>
<div class="ttc" id="group__ZYPP__SMART__PTR_html_ga9ffc8a01367e8a71d551ea8dbdc356f2"><div class="ttname"><a href="group__ZYPP__SMART__PTR.html#ga9ffc8a01367e8a71d551ea8dbdc356f2">zypp::str::form</a></div><div class="ttdeci">std::string form(const char *format,...) __attribute__((format(printf</div><div class="ttdoc">Printf style construction of std::string.</div><div class="ttdef"><b>Definition:</b> <a href="String_8cc_source.html#l00036">String.cc:36</a></div></div>
<div class="ttc" id="classzypp_1_1RepoStatus_html_a177c96a017131ed01b64cb477e9f3d64"><div class="ttname"><a href="classzypp_1_1RepoStatus.html#a177c96a017131ed01b64cb477e9f3d64">zypp::RepoStatus::fromCookieFile</a></div><div class="ttdeci">static RepoStatus fromCookieFile(const Pathname &amp;path)</div><div class="ttdoc">Reads the status from a cookie file.</div><div class="ttdef"><b>Definition:</b> <a href="RepoStatus_8cc_source.html#l00108">RepoStatus.cc:108</a></div></div>
<div class="ttc" id="classzypp_1_1Patch_html"><div class="ttname"><a href="classzypp_1_1Patch.html">zypp::Patch</a></div><div class="ttdoc">Class representing a patch.</div><div class="ttdef"><b>Definition:</b> <a href="Patch_8h_source.html#l00036">Patch.h:36</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_ac7a55b8e1e625010623658f814d57c9d"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#ac7a55b8e1e625010623658f814d57c9d">zypp::target::TargetImpl::installSrcPackage</a></div><div class="ttdeci">void installSrcPackage(const SrcPackage_constPtr &amp;srcPackage_r)</div><div class="ttdoc">Install a source package on the Target.</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l01905">TargetImpl.cc:1905</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_af901ee1d5be54161574873a896b3917c"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#af901ee1d5be54161574873a896b3917c">zypp::target::TargetImpl::targetDistributionFlavor</a></div><div class="ttdeci">std::string targetDistributionFlavor() const</div><div class="ttdoc">This is register.flavor attribute of the installed base product.</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l01802">TargetImpl.cc:1802</a></div></div>
<div class="ttc" id="structzypp_1_1functor_1_1Constant_html"><div class="ttname"><a href="structzypp_1_1functor_1_1Constant.html">zypp::functor::Constant</a></div><div class="ttdef"><b>Definition:</b> <a href="Functional_8h_source.html#l00219">Functional.h:219</a></div></div>
<div class="ttc" id="classzypp_1_1HistoryLog_html_ad15290b2f5d7f1e0e721848695e3f33c"><div class="ttname"><a href="classzypp_1_1HistoryLog.html#ad15290b2f5d7f1e0e721848695e3f33c">zypp::HistoryLog::install</a></div><div class="ttdeci">void install(const PoolItem &amp;pi)</div><div class="ttdoc">Log installation (or update) of a package.</div><div class="ttdef"><b>Definition:</b> <a href="HistoryLog_8cc_source.html#l00232">HistoryLog.cc:232</a></div></div>
<div class="ttc" id="classzypp_1_1PoolItem_html_a341c425d6489ce0e408e9c807b3896ee"><div class="ttname"><a href="classzypp_1_1PoolItem.html#a341c425d6489ce0e408e9c807b3896ee">zypp::PoolItem::resolvable</a></div><div class="ttdeci">ResObject::constPtr resolvable() const</div><div class="ttdoc">Returns the ResObject::constPtr.</div><div class="ttdef"><b>Definition:</b> <a href="PoolItem_8cc_source.html#l00217">PoolItem.cc:217</a></div></div>
<div class="ttc" id="group__ZYPP__BASE__LOGGER__MACROS_html_ga735563036dced0b7d6cc98f97ea4978b"><div class="ttname"><a href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a></div><div class="ttdeci">#define ERR</div><div class="ttdef"><b>Definition:</b> <a href="Logger_8h_source.html#l00081">Logger.h:81</a></div></div>
<div class="ttc" id="namespacezypp_1_1target_1_1rpm_html_a4c4781cc6d1baa791e7b97b8093beeb9ae3750c83689335ae6cf97ca87155555a"><div class="ttname"><a href="namespacezypp_1_1target_1_1rpm.html#a4c4781cc6d1baa791e7b97b8093beeb9ae3750c83689335ae6cf97ca87155555a">zypp::target::rpm::RPMINST_NOUPGRADE</a></div><div class="ttdef"><b>Definition:</b> <a href="RpmFlags_8h_source.html#l00048">RpmFlags.h:48</a></div></div>
<div class="ttc" id="structzypp_1_1json_1_1Object_html"><div class="ttname"><a href="structzypp_1_1json_1_1Object.html">zypp::json::Object</a></div><div class="ttdoc">JSON object.</div><div class="ttdef"><b>Definition:</b> <a href="Json_8h_source.html#l00321">Json.h:321</a></div></div>
<div class="ttc" id="classzypp_1_1ExternalProgram_html_a569290605b69ca72af7d274b507394b6"><div class="ttname"><a href="classzypp_1_1ExternalProgram.html#a569290605b69ca72af7d274b507394b6">zypp::ExternalProgram::Arguments</a></div><div class="ttdeci">std::vector&lt; std::string &gt; Arguments</div><div class="ttdef"><b>Definition:</b> <a href="ExternalProgram_8h_source.html#l00064">ExternalProgram.h:64</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a07a4ae56efbc27679a48d3dfa305b2ac"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a07a4ae56efbc27679a48d3dfa305b2ac">zypp::target::TargetImpl::targetDistributionRelease</a></div><div class="ttdeci">std::string targetDistributionRelease() const</div><div class="ttdoc">This is register.release attribute of the installed base product.</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l01796">TargetImpl.cc:1796</a></div></div>
<div class="ttc" id="namespacezypp_1_1filesystem_html_a29a964b2276d62ff455b096f40269896af84cde350cb0725bea05fc9bf1bcba62"><div class="ttname"><a href="namespacezypp_1_1filesystem.html#a29a964b2276d62ff455b096f40269896af84cde350cb0725bea05fc9bf1bcba62">zypp::filesystem::FT_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8h_source.html#l00059">PathInfo.h:59</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1RpmPostTransCollector_html"><div class="ttname"><a href="classzypp_1_1target_1_1RpmPostTransCollector.html">zypp::target::RpmPostTransCollector</a></div><div class="ttdoc">Extract and remember posttrans scripts for later execution.</div><div class="ttdef"><b>Definition:</b> <a href="RpmPostTransCollector_8h_source.html#l00031">RpmPostTransCollector.h:31</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1rpm_1_1librpmDb_1_1db__const__iterator_html"><div class="ttname"><a href="classzypp_1_1target_1_1rpm_1_1librpmDb_1_1db__const__iterator.html">zypp::target::rpm::librpmDb::db_const_iterator</a></div><div class="ttdoc">Subclass to retrieve database content.</div><div class="ttdef"><b>Definition:</b> <a href="librpmDb_8h_source.html#l00490">librpmDb.h:490</a></div></div>
<div class="ttc" id="IOStream_8h_html"><div class="ttname"><a href="IOStream_8h.html">IOStream.h</a></div></div>
<div class="ttc" id="Url_8h_html"><div class="ttname"><a href="Url_8h.html">Url.h</a></div></div>
<div class="ttc" id="classzypp_1_1repo_1_1SrcPackageProvider_html"><div class="ttname"><a href="classzypp_1_1repo_1_1SrcPackageProvider.html">zypp::repo::SrcPackageProvider</a></div><div class="ttdef"><b>Definition:</b> <a href="SrcPackageProvider_8h_source.html#l00038">SrcPackageProvider.h:38</a></div></div>
<div class="ttc" id="classzypp_1_1Exception_html_af6a5a1a9527e907e19bd94d61e0dc2be"><div class="ttname"><a href="classzypp_1_1Exception.html#af6a5a1a9527e907e19bd94d61e0dc2be">zypp::Exception::remember</a></div><div class="ttdeci">void remember(const Exception &amp;old_r)</div><div class="ttdoc">Store an other Exception as history.</div><div class="ttdef"><b>Definition:</b> <a href="Exception_8cc_source.html#l00105">Exception.cc:105</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a68ceb59f98193242679509382b5cea9e"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a68ceb59f98193242679509382b5cea9e">zypp::target::TargetImpl::_rpm</a></div><div class="ttdeci">rpm::RpmDb _rpm</div><div class="ttdoc">RPM database.</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8h_source.html#l00215">TargetImpl.h:215</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Pool_html_aebbc9780cd7f329473f85fa56904ff08"><div class="ttname"><a href="classzypp_1_1sat_1_1Pool.html#aebbc9780cd7f329473f85fa56904ff08">zypp::sat::Pool::systemRepo</a></div><div class="ttdeci">Repository systemRepo()</div><div class="ttdoc">Return the system repository, create it if missing.</div><div class="ttdef"><b>Definition:</b> <a href="Pool_8cc_source.html#l00157">Pool.cc:157</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a777116231fcd65f5c855456b6c3073bd"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a777116231fcd65f5c855456b6c3073bd">zypp::target::TargetImpl::distributionVersion</a></div><div class="ttdeci">std::string distributionVersion() const</div><div class="ttdoc">This is version attribute of the installed base product.</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l01826">TargetImpl.cc:1826</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1RequestedLocalesFile_html_ad82a939768f8940ffe3edadd7b2e0ae8"><div class="ttname"><a href="classzypp_1_1target_1_1RequestedLocalesFile.html#ad82a939768f8940ffe3edadd7b2e0ae8">zypp::target::RequestedLocalesFile::locales</a></div><div class="ttdeci">const LocaleSet &amp; locales() const</div><div class="ttdoc">Return the loacale set.</div><div class="ttdef"><b>Definition:</b> <a href="RequestedLocalesFile_8h_source.html#l00053">RequestedLocalesFile.h:53</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a42e512f9b715fcb08d1211ce62c53fcf"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a42e512f9b715fcb08d1211ce62c53fcf">zypp::target::TargetImpl::createLastDistributionFlavorCache</a></div><div class="ttdeci">void createLastDistributionFlavorCache() const</div><div class="ttdoc">generates a cache of the last product flavor</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l00776">TargetImpl.cc:776</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Pool_html_af2e328e862f21a3b5e2b8ff01dea197e"><div class="ttname"><a href="classzypp_1_1sat_1_1Pool.html#af2e328e862f21a3b5e2b8ff01dea197e">zypp::sat::Pool::initRequestedLocales</a></div><div class="ttdeci">void initRequestedLocales(const LocaleSet &amp;locales_r)</div><div class="ttdoc">Start tracking changes based on this locales_r.</div><div class="ttdef"><b>Definition:</b> <a href="Pool_8cc_source.html#l00230">Pool.cc:230</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Transaction_html_af8597d5471ec4b6f36571fa6a07cb806afd2eb2b19994354abc153f98fd86e4e5"><div class="ttname"><a href="classzypp_1_1sat_1_1Transaction.html#af8597d5471ec4b6f36571fa6a07cb806afd2eb2b19994354abc153f98fd86e4e5">zypp::sat::Transaction::STEP_ERROR</a></div><div class="ttdoc">[**] error</div><div class="ttdef"><b>Definition:</b> <a href="Transaction_8h_source.html#l00075">Transaction.h:75</a></div></div>
<div class="ttc" id="classzypp_1_1RepoStatus_html_abd845710e9a452df66c1b4ff0361f458"><div class="ttname"><a href="classzypp_1_1RepoStatus.html#abd845710e9a452df66c1b4ff0361f458">zypp::RepoStatus::saveToCookieFile</a></div><div class="ttdeci">void saveToCookieFile(const Pathname &amp;path_r) const</div><div class="ttdoc">Save the status information to a cookie file.</div><div class="ttdef"><b>Definition:</b> <a href="RepoStatus_8cc_source.html#l00126">RepoStatus.cc:126</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Transaction_html_a4810a5e5ac748091398b61b91b558511"><div class="ttname"><a href="classzypp_1_1sat_1_1Transaction.html#a4810a5e5ac748091398b61b91b558511">zypp::sat::Transaction::autoInstalled</a></div><div class="ttdeci">StringQueue autoInstalled() const</div><div class="ttdoc">Return the ident strings of all packages that would be auto-installed after the transaction is run.</div><div class="ttdef"><b>Definition:</b> <a href="Transaction_8cc_source.html#l00356">Transaction.cc:356</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a2cc91213b6f96f661c70d2f2fd1608ca"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a2cc91213b6f96f661c70d2f2fd1608ca">zypp::target::TargetImpl::requestedLocales</a></div><div class="ttdeci">LocaleSet requestedLocales() const</div><div class="ttdoc">Languages to be supported by the system.</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8h_source.html#l00160">TargetImpl.h:160</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Transaction_html_acc041dbe1a42f50a156ef630ade4021eaba36bc6300f651f9004598b44c47df92"><div class="ttname"><a href="classzypp_1_1sat_1_1Transaction.html#acc041dbe1a42f50a156ef630ade4021eaba36bc6300f651f9004598b44c47df92">zypp::sat::Transaction::TRANSACTION_IGNORE</a></div><div class="ttdoc">[ ] Nothing (includes implicit deletes due to obsoletes and non-package actions)</div><div class="ttdef"><b>Definition:</b> <a href="Transaction_8h_source.html#l00064">Transaction.h:64</a></div></div>
<div class="ttc" id="classzypp_1_1filesystem_1_1Pathname_html_aaf4388add8c0f9294a7b15f0614f7656"><div class="ttname"><a href="classzypp_1_1filesystem_1_1Pathname.html#aaf4388add8c0f9294a7b15f0614f7656">zypp::filesystem::Pathname::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdoc">Test for an empty path.</div><div class="ttdef"><b>Definition:</b> <a href="Pathname_8h_source.html#l00113">Pathname.h:113</a></div></div>
<div class="ttc" id="namespacezypp_1_1filesystem_html_a9e50ac998d9b9d592ef1ba4c5c7db1ce"><div class="ttname"><a href="namespacezypp_1_1filesystem.html#a9e50ac998d9b9d592ef1ba4c5c7db1ce">zypp::filesystem::addmod</a></div><div class="ttdeci">int addmod(const Pathname &amp;path, mode_t mode)</div><div class="ttdoc">Add the mode bits to the file given by path.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8cc_source.html#l01054">PathInfo.cc:1054</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Queue_html_ae2c07f4d37276d479125f12b0789e221"><div class="ttname"><a href="classzypp_1_1sat_1_1Queue.html#ae2c07f4d37276d479125f12b0789e221">zypp::sat::Queue::push</a></div><div class="ttdeci">void push(value_type val_r)</div><div class="ttdoc">Push a value to the end off the Queue.</div><div class="ttdef"><b>Definition:</b> <a href="Queue_8cc_source.html#l00103">Queue.cc:103</a></div></div>
<div class="ttc" id="namespacezypp_1_1iostr_html_a9ebc01b7f87a5d078d0ac84d87407804"><div class="ttname"><a href="namespacezypp_1_1iostr.html#a9ebc01b7f87a5d078d0ac84d87407804">zypp::iostr::getline</a></div><div class="ttdeci">std::string getline(std::istream &amp;str)</div><div class="ttdoc">Read one line from stream.</div><div class="ttdef"><b>Definition:</b> <a href="IOStream_8cc_source.html#l00033">IOStream.cc:33</a></div></div>
<div class="ttc" id="classzypp_1_1Date_html"><div class="ttname"><a href="classzypp_1_1Date.html">zypp::Date</a></div><div class="ttdoc">Store and operate on date (time_t).</div><div class="ttdef"><b>Definition:</b> <a href="Date_8h_source.html#l00032">Date.h:32</a></div></div>
<div class="ttc" id="RpmPostTransCollector_8h_html"><div class="ttname"><a href="RpmPostTransCollector_8h.html">RpmPostTransCollector.h</a></div></div>
<div class="ttc" id="classzypp_1_1Repository_html_a61aa22071f64af781a30bb33bd876728"><div class="ttname"><a href="classzypp_1_1Repository.html#a61aa22071f64af781a30bb33bd876728">zypp::Repository::solvablesEnd</a></div><div class="ttdeci">SolvableIterator solvablesEnd() const</div><div class="ttdoc">Iterator behind the last Solvable.</div><div class="ttdef"><b>Definition:</b> <a href="Repository_8cc_source.html#l00241">Repository.cc:241</a></div></div>
<div class="ttc" id="classzypp_1_1parser_1_1ProductFileData_html_a988f50e5c653cd2c757dcd2dabe4ae8f"><div class="ttname"><a href="classzypp_1_1parser_1_1ProductFileData.html#a988f50e5c653cd2c757dcd2dabe4ae8f">zypp::parser::ProductFileData::shortName</a></div><div class="ttdeci">std::string shortName() const</div><div class="ttdef"><b>Definition:</b> <a href="ProductFileReader_8cc_source.html#l00095">ProductFileReader.cc:95</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Pool_html_aacf0eaeb5c1f2dbe59254df82840dd9a"><div class="ttname"><a href="classzypp_1_1sat_1_1Pool.html#aacf0eaeb5c1f2dbe59254df82840dd9a">zypp::sat::Pool::instance</a></div><div class="ttdeci">static Pool instance()</div><div class="ttdoc">Singleton ctor.</div><div class="ttdef"><b>Definition:</b> <a href="Pool_8h_source.html#l00053">Pool.h:53</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1SolvIdentFile_html_acacb56c5b0bce5a31142fd8fe23a50db"><div class="ttname"><a href="classzypp_1_1target_1_1SolvIdentFile.html#acacb56c5b0bce5a31142fd8fe23a50db">zypp::target::SolvIdentFile::data</a></div><div class="ttdeci">const Data &amp; data() const</div><div class="ttdoc">Return the data.</div><div class="ttdef"><b>Definition:</b> <a href="SolvIdentFile_8h_source.html#l00053">SolvIdentFile.h:53</a></div></div>
<div class="ttc" id="ResFilters_8h_html"><div class="ttname"><a href="ResFilters_8h.html">ResFilters.h</a></div></div>
<div class="ttc" id="classzypp_1_1Edition_html_a2d905c5efd947bf409860fad9cc00fcf"><div class="ttname"><a href="classzypp_1_1Edition.html#a2d905c5efd947bf409860fad9cc00fcf">zypp::Edition::version</a></div><div class="ttdeci">std::string version() const</div><div class="ttdoc">Version.</div><div class="ttdef"><b>Definition:</b> <a href="Edition_8cc_source.html#l00094">Edition.cc:94</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a399da7ab141cf4275c93e5064fb6f565"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a399da7ab141cf4275c93e5064fb6f565">zypp::target::TargetImpl::_root</a></div><div class="ttdeci">Pathname _root</div><div class="ttdoc">Path to the target.</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8h_source.html#l00213">TargetImpl.h:213</a></div></div>
<div class="ttc" id="classzypp_1_1ExternalProgram_html"><div class="ttname"><a href="classzypp_1_1ExternalProgram.html">zypp::ExternalProgram</a></div><div class="ttdoc">Execute a program and give access to its io An object of this class encapsulates the execution of an ...</div><div class="ttdef"><b>Definition:</b> <a href="ExternalProgram_8h_source.html#l00059">ExternalProgram.h:59</a></div></div>
<div class="ttc" id="namespacezypp_1_1str_html_af8bbe6f32fcb2fe4e652320506b3ba9d"><div class="ttname"><a href="namespacezypp_1_1str.html#af8bbe6f32fcb2fe4e652320506b3ba9d">zypp::str::trim</a></div><div class="ttdeci">std::string trim(const std::string &amp;s, const Trim trim_r)</div><div class="ttdef"><b>Definition:</b> <a href="String_8cc_source.html#l00221">String.cc:221</a></div></div>
<div class="ttc" id="namespacezypp_1_1filesystem_html_a4c64d87548a31ac2d33c378075dd6a12"><div class="ttname"><a href="namespacezypp_1_1filesystem.html#a4c64d87548a31ac2d33c378075dd6a12">zypp::filesystem::unlink</a></div><div class="ttdeci">int unlink(const Pathname &amp;path)</div><div class="ttdoc">Like 'unlink'.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8cc_source.html#l00653">PathInfo.cc:653</a></div></div>
<div class="ttc" id="structzypp_1_1Target_1_1DistributionLabel_html_a28a675402c189816eb8048036f0b232f"><div class="ttname"><a href="structzypp_1_1Target_1_1DistributionLabel.html#a28a675402c189816eb8048036f0b232f">zypp::Target::DistributionLabel::shortName</a></div><div class="ttdeci">std::string shortName</div><div class="ttdef"><b>Definition:</b> <a href="Target_8h_source.html#l00166">Target.h:166</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Pool_html_ab7fbc24443322c64e0c9d6d6c9e4b8dc"><div class="ttname"><a href="classzypp_1_1sat_1_1Pool.html#ab7fbc24443322c64e0c9d6d6c9e4b8dc">zypp::sat::Pool::systemRepoAlias</a></div><div class="ttdeci">static const std::string &amp; systemRepoAlias()</div><div class="ttdoc">Reserved system repository alias @System .</div><div class="ttdef"><b>Definition:</b> <a href="Pool_8cc_source.html#l00046">Pool.cc:46</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1RpmPostTransCollector_html_a6bf400af76625f0cc5d9bcf254d694f9"><div class="ttname"><a href="classzypp_1_1target_1_1RpmPostTransCollector.html#a6bf400af76625f0cc5d9bcf254d694f9">zypp::target::RpmPostTransCollector::collectScriptFromPackage</a></div><div class="ttdeci">bool collectScriptFromPackage(ManagedFile rpmPackage_r)</div><div class="ttdoc">Extract and remember a packages posttrans script for later execution.</div><div class="ttdef"><b>Definition:</b> <a href="RpmPostTransCollector_8cc_source.html#l00227">RpmPostTransCollector.cc:227</a></div></div>
<div class="ttc" id="classzypp_1_1HistoryLog_html_aa19a350747ecf398a526fb0935dbaefe"><div class="ttname"><a href="classzypp_1_1HistoryLog.html#aa19a350747ecf398a526fb0935dbaefe">zypp::HistoryLog::fname</a></div><div class="ttdeci">static const Pathname &amp; fname()</div><div class="ttdoc">Get the current log file path.</div><div class="ttdef"><b>Definition:</b> <a href="HistoryLog_8cc_source.html#l00179">HistoryLog.cc:179</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1RpmPostTransCollector_html_a70199f31748ed22b889de57bce85b5ed"><div class="ttname"><a href="classzypp_1_1target_1_1RpmPostTransCollector.html#a70199f31748ed22b889de57bce85b5ed">zypp::target::RpmPostTransCollector::executeScripts</a></div><div class="ttdeci">bool executeScripts()</div><div class="ttdoc">Execute the remembered scripts.</div><div class="ttdef"><b>Definition:</b> <a href="RpmPostTransCollector_8cc_source.html#l00230">RpmPostTransCollector.cc:230</a></div></div>
<div class="ttc" id="classzypp_1_1filesystem_1_1Pathname_html_a91a822e47df9fa6f484a7b771a0b3c94"><div class="ttname"><a href="classzypp_1_1filesystem_1_1Pathname.html#a91a822e47df9fa6f484a7b771a0b3c94">zypp::filesystem::Pathname::asString</a></div><div class="ttdeci">const std::string &amp; asString() const</div><div class="ttdoc">String representation.</div><div class="ttdef"><b>Definition:</b> <a href="Pathname_8h_source.html#l00090">Pathname.h:90</a></div></div>
<div class="ttc" id="classzypp_1_1PluginExecutor_html_ab337837061a8ef89198eafb92cac59b9"><div class="ttname"><a href="classzypp_1_1PluginExecutor.html#ab337837061a8ef89198eafb92cac59b9">zypp::PluginExecutor::send</a></div><div class="ttdeci">void send(const PluginFrame &amp;frame_r)</div><div class="ttdoc">Send PluginFrame to all open plugins.</div><div class="ttdef"><b>Definition:</b> <a href="PluginExecutor_8cc_source.html#l00173">PluginExecutor.cc:173</a></div></div>
<div class="ttc" id="namespacezypp_1_1filesystem_html_a4e57629fa9576b7599b1165a2bd293e3"><div class="ttname"><a href="namespacezypp_1_1filesystem.html#a4e57629fa9576b7599b1165a2bd293e3">zypp::filesystem::rename</a></div><div class="ttdeci">int rename(const Pathname &amp;oldpath, const Pathname &amp;newpath)</div><div class="ttdoc">Like 'rename'.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8cc_source.html#l00695">PathInfo.cc:695</a></div></div>
<div class="ttc" id="namespacezypp_html_aff0a5458dd3d0a9dd37b1484c5787420af06a07a653c79d4e8240ca0c05c17be1"><div class="ttname"><a href="namespacezypp.html#aff0a5458dd3d0a9dd37b1484c5787420af06a07a653c79d4e8240ca0c05c17be1">zypp::DownloadOnly</a></div><div class="ttdoc">Just download all packages to the local cache.</div><div class="ttdef"><b>Definition:</b> <a href="DownloadMode_8h_source.html#l00025">DownloadMode.h:25</a></div></div>
<div class="ttc" id="classzypp_1_1ZYppCommitPolicy_html"><div class="ttname"><a href="classzypp_1_1ZYppCommitPolicy.html">zypp::ZYppCommitPolicy</a></div><div class="ttdoc">Options and policies for ZYpp::commit.</div><div class="ttdef"><b>Definition:</b> <a href="ZYppCommitPolicy_8h_source.html#l00033">ZYppCommitPolicy.h:33</a></div></div>
<div class="ttc" id="classzypp_1_1filesystem_1_1PathInfo_html_abb1afbf5ddd0392d0d0abc25577347d3"><div class="ttname"><a href="classzypp_1_1filesystem_1_1PathInfo.html#abb1afbf5ddd0392d0d0abc25577347d3">zypp::filesystem::PathInfo::isExist</a></div><div class="ttdeci">bool isExist() const</div><div class="ttdoc">Return whether valid stat info exists.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8h_source.html#l00281">PathInfo.h:281</a></div></div>
<div class="ttc" id="structzypp_1_1Target_1_1DistributionLabel_html"><div class="ttname"><a href="structzypp_1_1Target_1_1DistributionLabel.html">zypp::Target::DistributionLabel</a></div><div class="ttdef"><b>Definition:</b> <a href="Target_8h_source.html#l00166">Target.h:166</a></div></div>
<div class="ttc" id="namespacezypp_html_aff0a5458dd3d0a9dd37b1484c5787420afb54776d9ab348ca9eeb02a5b53d5ae3"><div class="ttname"><a href="namespacezypp.html#aff0a5458dd3d0a9dd37b1484c5787420afb54776d9ab348ca9eeb02a5b53d5ae3">zypp::DownloadDefault</a></div><div class="ttdoc">libzypp will decide what to do.</div><div class="ttdef"><b>Definition:</b> <a href="DownloadMode_8h_source.html#l00024">DownloadMode.h:24</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Transaction_1_1Step_html"><div class="ttname"><a href="classzypp_1_1sat_1_1Transaction_1_1Step.html">zypp::sat::Transaction::Step</a></div><div class="ttdoc">A single step within a Transaction.</div><div class="ttdef"><b>Definition:</b> <a href="Transaction_8h_source.html#l00216">Transaction.h:216</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetAbortedException_html"><div class="ttname"><a href="classzypp_1_1target_1_1TargetAbortedException.html">zypp::target::TargetAbortedException</a></div><div class="ttdef"><b>Definition:</b> <a href="TargetException_8h_source.html#l00051">TargetException.h:51</a></div></div>
<div class="ttc" id="classzypp_1_1Package_html"><div class="ttname"><a href="classzypp_1_1Package.html">zypp::Package</a></div><div class="ttdoc">Package interface.</div><div class="ttdef"><b>Definition:</b> <a href="Package_8h_source.html#l00032">Package.h:32</a></div></div>
<div class="ttc" id="classzypp_1_1ZYppCommitPolicy_html_a94af23f8dd5ce6b195a663280e05a8d9"><div class="ttname"><a href="classzypp_1_1ZYppCommitPolicy.html#a94af23f8dd5ce6b195a663280e05a8d9">zypp::ZYppCommitPolicy::downloadMode</a></div><div class="ttdeci">ZYppCommitPolicy &amp; downloadMode(DownloadMode val_r)</div><div class="ttdoc">Commit download policy to use.</div><div class="ttdef"><b>Definition:</b> <a href="ZYppCommitPolicy_8cc_source.html#l00079">ZYppCommitPolicy.cc:79</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a421d883d6623b83dfeb6961c8cecfb24"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a421d883d6623b83dfeb6961c8cecfb24">zypp::target::TargetImpl::_requestedLocalesFile</a></div><div class="ttdeci">RequestedLocalesFile _requestedLocalesFile</div><div class="ttdoc">Requested Locales database.</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8h_source.html#l00217">TargetImpl.h:217</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1RequestedLocalesFile_html_a8cfb30fc8c72f3962449b57e8695f568"><div class="ttname"><a href="classzypp_1_1target_1_1RequestedLocalesFile.html#a8cfb30fc8c72f3962449b57e8695f568">zypp::target::RequestedLocalesFile::setLocales</a></div><div class="ttdeci">void setLocales(const LocaleSet &amp;locales_r)</div><div class="ttdoc">Store a new locale set.</div><div class="ttdef"><b>Definition:</b> <a href="RequestedLocalesFile_8h_source.html#l00068">RequestedLocalesFile.h:68</a></div></div>
<div class="ttc" id="RepoStatus_8h_html"><div class="ttname"><a href="RepoStatus_8h.html">RepoStatus.h</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Pool_html_a70097973bcf9fa646b66269438716604"><div class="ttname"><a href="classzypp_1_1sat_1_1Pool.html#a70097973bcf9fa646b66269438716604">zypp::sat::Pool::rootDir</a></div><div class="ttdeci">Pathname rootDir() const</div><div class="ttdoc">Get rootdir (for file conflicts check)</div><div class="ttdef"><b>Definition:</b> <a href="Pool_8cc_source.html#l00064">Pool.cc:64</a></div></div>
<div class="ttc" id="classzypp_1_1ResPool_html_ae1515db6d60c62f236c06b12ba4802fe"><div class="ttname"><a href="classzypp_1_1ResPool.html#ae1515db6d60c62f236c06b12ba4802fe">zypp::ResPool::getHardLockQueries</a></div><div class="ttdeci">void getHardLockQueries(HardLockQueries &amp;activeLocks_r)</div><div class="ttdoc">Suggest a new set of queries based on the current selection.</div><div class="ttdef"><b>Definition:</b> <a href="ResPool_8cc_source.html#l00101">ResPool.cc:101</a></div></div>
<div class="ttc" id="ZConfig_8h_html"><div class="ttname"><a href="ZConfig_8h.html">ZConfig.h</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Transaction_1_1Step_html_a44403863a0e035235bdb0965dfaa667b"><div class="ttname"><a href="classzypp_1_1sat_1_1Transaction_1_1Step.html#a44403863a0e035235bdb0965dfaa667b">zypp::sat::Transaction::Step::ident</a></div><div class="ttdeci">IdString ident() const</div><div class="ttdef"><b>Definition:</b> <a href="Transaction_8cc_source.html#l00395">Transaction.cc:395</a></div></div>
<div class="ttc" id="classzypp_1_1filesystem_1_1Pathname_html_a5cc68841952d6d462a1212119356da20"><div class="ttname"><a href="classzypp_1_1filesystem_1_1Pathname.html#a5cc68841952d6d462a1212119356da20">zypp::filesystem::Pathname::dirname</a></div><div class="ttdeci">Pathname dirname() const</div><div class="ttdoc">Return all but the last component od this path.</div><div class="ttdef"><b>Definition:</b> <a href="Pathname_8h_source.html#l00123">Pathname.h:123</a></div></div>
<div class="ttc" id="ResObjects_8h_html"><div class="ttname"><a href="ResObjects_8h.html">ResObjects.h</a></div></div>
<div class="ttc" id="classzypp_1_1filesystem_1_1Pathname_html_ab2800733207f240280f2fd82b52ba4b2"><div class="ttname"><a href="classzypp_1_1filesystem_1_1Pathname.html#ab2800733207f240280f2fd82b52ba4b2">zypp::filesystem::Pathname::assertprefix</a></div><div class="ttdeci">static Pathname assertprefix(const Pathname &amp;root_r, const Pathname &amp;path_r)</div><div class="ttdoc">Return path_r prefixed with root_r, unless it is already prefixed.</div><div class="ttdef"><b>Definition:</b> <a href="Pathname_8cc_source.html#l00235">Pathname.cc:235</a></div></div>
<div class="ttc" id="namespacezypp_1_1filesystem_html_a72db515ee4c999779798712405ed25e6"><div class="ttname"><a href="namespacezypp_1_1filesystem.html#a72db515ee4c999779798712405ed25e6">zypp::filesystem::recursive_rmdir</a></div><div class="ttdeci">int recursive_rmdir(const Pathname &amp;path)</div><div class="ttdoc">Like 'rm -r DIR'.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8cc_source.html#l00413">PathInfo.cc:413</a></div></div>
<div class="ttc" id="classzypp_1_1Edition_html_a7cdc3e215b0635ad5947801af94971d5"><div class="ttname"><a href="classzypp_1_1Edition.html#a7cdc3e215b0635ad5947801af94971d5">zypp::Edition::release</a></div><div class="ttdeci">std::string release() const</div><div class="ttdoc">Release.</div><div class="ttdef"><b>Definition:</b> <a href="Edition_8cc_source.html#l00110">Edition.cc:110</a></div></div>
<div class="ttc" id="classzypp_1_1ZConfig_html"><div class="ttname"><a href="classzypp_1_1ZConfig.html">zypp::ZConfig</a></div><div class="ttdoc">Interim helper class to collect global options and settings.</div><div class="ttdef"><b>Definition:</b> <a href="ZConfig_8h_source.html#l00059">ZConfig.h:59</a></div></div>
<div class="ttc" id="group__ZYPP__BASE__LOGGER__MACROS_html_ga9423380a92639b296ea0a984ea7e1c6b"><div class="ttname"><a href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a></div><div class="ttdeci">#define WAR</div><div class="ttdef"><b>Definition:</b> <a href="Logger_8h_source.html#l00080">Logger.h:80</a></div></div>
<div class="ttc" id="classzypp_1_1Repository_html_a85d00f37ad6abddd6545ca3c43fe2aa0"><div class="ttname"><a href="classzypp_1_1Repository.html#a85d00f37ad6abddd6545ca3c43fe2aa0">zypp::Repository::solvablesBegin</a></div><div class="ttdeci">SolvableIterator solvablesBegin() const</div><div class="ttdoc">Iterator to the first Solvable.</div><div class="ttdef"><b>Definition:</b> <a href="Repository_8cc_source.html#l00231">Repository.cc:231</a></div></div>
<div class="ttc" id="namespacezypp_1_1str_html_a6e25ab4e5c5c44111994709692fb08eb"><div class="ttname"><a href="namespacezypp_1_1str.html#a6e25ab4e5c5c44111994709692fb08eb">zypp::str::startsWith</a></div><div class="ttdeci">bool startsWith(const C_Str &amp;str_r, const C_Str &amp;prefix_r)</div><div class="ttdoc">alias for hasPrefix</div><div class="ttdef"><b>Definition:</b> <a href="String_8h_source.html#l01078">String.h:1078</a></div></div>
<div class="ttc" id="SrcPackageProvider_8h_html"><div class="ttname"><a href="SrcPackageProvider_8h.html">SrcPackageProvider.h</a></div></div>
<div class="ttc" id="Json_8h_html"><div class="ttname"><a href="Json_8h.html">Json.h</a></div></div>
<div class="ttc" id="namespacezypp_1_1filesystem_html_ade46cd05af0a1fa7e5995e321cfb586b"><div class="ttname"><a href="namespacezypp_1_1filesystem.html#ade46cd05af0a1fa7e5995e321cfb586b">zypp::filesystem::DirContent</a></div><div class="ttdeci">std::list&lt; DirEntry &gt; DirContent</div><div class="ttdoc">Returned by readdir.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8h_source.html#l00547">PathInfo.h:547</a></div></div>
<div class="ttc" id="classzypp_1_1parser_1_1ProductFileData_html_a25515b725799c44bf67c85ca844708d2"><div class="ttname"><a href="classzypp_1_1parser_1_1ProductFileData.html#a25515b725799c44bf67c85ca844708d2">zypp::parser::ProductFileData::summary</a></div><div class="ttdeci">std::string summary() const</div><div class="ttdef"><b>Definition:</b> <a href="ProductFileReader_8cc_source.html#l00096">ProductFileReader.cc:96</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Transaction_html_a92729c01a9786df31c167bbef8d1622d"><div class="ttname"><a href="classzypp_1_1sat_1_1Transaction.html#a92729c01a9786df31c167bbef8d1622d">zypp::sat::Transaction::order</a></div><div class="ttdeci">bool order()</div><div class="ttdoc">Order transaction steps for commit.</div><div class="ttdef"><b>Definition:</b> <a href="Transaction_8cc_source.html#l00326">Transaction.cc:326</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a74aa62375f34ea1e963cdf4b101f3d77"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a74aa62375f34ea1e963cdf4b101f3d77">zypp::target::TargetImpl::solvfilesPath</a></div><div class="ttdeci">Pathname solvfilesPath() const</div><div class="ttdoc">The solv file location actually in use (default or temp).</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8h_source.html#l00092">TargetImpl.h:92</a></div></div>
<div class="ttc" id="namespacezypp_1_1sat_html_ad45df5cf58daa413e6e443b45f0713a8"><div class="ttname"><a href="namespacezypp_1_1sat.html#ad45df5cf58daa413e6e443b45f0713a8">zypp::sat::updateSolvFileIndex</a></div><div class="ttdeci">void updateSolvFileIndex(const Pathname &amp;solvfile_r)</div><div class="ttdoc">Create solv file content digest for zypper bash completion.</div><div class="ttdef"><b>Definition:</b> <a href="Pool_8cc_source.html#l00266">Pool.cc:266</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a1bb900c594c9f6770d22e0805807265c"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a1bb900c594c9f6770d22e0805807265c">zypp::target::TargetImpl::targetDistribution</a></div><div class="ttdeci">std::string targetDistribution() const</div><div class="ttdoc">This is register.target attribute of the installed base product.</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l01790">TargetImpl.cc:1790</a></div></div>
<div class="ttc" id="classzypp_1_1ResPool_html_a731a353c23e322c00b69ed51dbe77c34"><div class="ttname"><a href="classzypp_1_1ResPool.html#a731a353c23e322c00b69ed51dbe77c34">zypp::ResPool::resolver</a></div><div class="ttdeci">Resolver &amp; resolver() const</div><div class="ttdoc">The Resolver.</div><div class="ttdef"><b>Definition:</b> <a href="ResPool_8cc_source.html#l00057">ResPool.cc:57</a></div></div>
<div class="ttc" id="classzypp_1_1HistoryLog_html"><div class="ttname"><a href="classzypp_1_1HistoryLog.html">zypp::HistoryLog</a></div><div class="ttdoc">Writing the zypp history fileReference counted signleton for writhing the zypp history file.</div><div class="ttdef"><b>Definition:</b> <a href="HistoryLog_8h_source.html#l00055">HistoryLog.h:55</a></div></div>
<div class="ttc" id="Repository_8h_html"><div class="ttname"><a href="Repository_8h.html">Repository.h</a></div></div>
<div class="ttc" id="classzypp_1_1Patch_html_a217412a82513587d3646a8d82a71659f"><div class="ttname"><a href="classzypp_1_1Patch.html#a217412a82513587d3646a8d82a71659f">zypp::Patch::constPtr</a></div><div class="ttdeci">TraitsType::constPtrType constPtr</div><div class="ttdef"><b>Definition:</b> <a href="Patch_8h_source.html#l00042">Patch.h:42</a></div></div>
<div class="ttc" id="structzypp_1_1json_1_1Array_html"><div class="ttname"><a href="structzypp_1_1json_1_1Array.html">zypp::json::Array</a></div><div class="ttdoc">JSON array.</div><div class="ttdef"><b>Definition:</b> <a href="Json_8h_source.html#l00256">Json.h:256</a></div></div>
<div class="ttc" id="Gettext_8h_html_ad0ac7087c1804ce80118f897d7edd897"><div class="ttname"><a href="Gettext_8h.html#ad0ac7087c1804ce80118f897d7edd897">_</a></div><div class="ttdeci">#define _(MSG)</div><div class="ttdef"><b>Definition:</b> <a href="Gettext_8h_source.html#l00037">Gettext.h:37</a></div></div>
<div class="ttc" id="classzypp_1_1externalprogram_1_1ExternalDataSource_html_a8211df39b7e79e32164f6a4d32fd513d"><div class="ttname"><a href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#a8211df39b7e79e32164f6a4d32fd513d">zypp::externalprogram::ExternalDataSource::receiveLine</a></div><div class="ttdeci">std::string receiveLine()</div><div class="ttdoc">Read one line from the input stream.</div><div class="ttdef"><b>Definition:</b> <a href="ExternalDataSource_8cc_source.html#l00126">ExternalDataSource.cc:126</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1rpm_1_1RpmDb_html_aa08e063822aad5bd9af634374bab6be4"><div class="ttname"><a href="classzypp_1_1target_1_1rpm_1_1RpmDb.html#aa08e063822aad5bd9af634374bab6be4">zypp::target::rpm::RpmDb::closeDatabase</a></div><div class="ttdeci">void closeDatabase()</div><div class="ttdoc">Block further access to the rpm database and go back to uninitialized state.</div><div class="ttdef"><b>Definition:</b> <a href="RpmDb_8cc_source.html#l00713">RpmDb.cc:713</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a591b9eeb83e191d7dff1532a51bb2da2"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a591b9eeb83e191d7dff1532a51bb2da2">zypp::target::TargetImpl::timestamp</a></div><div class="ttdeci">Date timestamp() const</div><div class="ttdoc">return the last modification date of the target</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l01702">TargetImpl.cc:1702</a></div></div>
<div class="ttc" id="classzypp_1_1ZYppCommitPolicy_html_a629fb7ca7fc51d874344a61b23f764b2"><div class="ttname"><a href="classzypp_1_1ZYppCommitPolicy.html#a629fb7ca7fc51d874344a61b23f764b2">zypp::ZYppCommitPolicy::restrictToMedia</a></div><div class="ttdeci">ZYppCommitPolicy &amp; restrictToMedia(unsigned mediaNr_r)</div><div class="ttdoc">Restrict commit to media 1.</div><div class="ttdef"><b>Definition:</b> <a href="ZYppCommitPolicy_8cc_source.html#l00065">ZYppCommitPolicy.cc:65</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a670b6a80a162acbd497937266336296b"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a670b6a80a162acbd497937266336296b">zypp::target::TargetImpl::PoolItemList</a></div><div class="ttdeci">std::list&lt; PoolItem &gt; PoolItemList</div><div class="ttdoc">list of pool items</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8h_source.html#l00059">TargetImpl.h:59</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Transaction_1_1Step_html_adc7d7451b5c2a74574b518aa6cc7892b"><div class="ttname"><a href="classzypp_1_1sat_1_1Transaction_1_1Step.html#adc7d7451b5c2a74574b518aa6cc7892b">zypp::sat::Transaction::Step::edition</a></div><div class="ttdeci">Edition edition() const</div><div class="ttdef"><b>Definition:</b> <a href="Transaction_8cc_source.html#l00398">Transaction.cc:398</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_aedb4144179e72885dc11efeb31bbdcfc"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#aedb4144179e72885dc11efeb31bbdcfc">zypp::target::TargetImpl::anonymousUniqueId</a></div><div class="ttdeci">std::string anonymousUniqueId() const</div><div class="ttdoc">anonymous unique id</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l01893">TargetImpl.cc:1893</a></div></div>
<div class="ttc" id="RepoManager_8cc_html_a6544f487e0f5c2fbf441f9e73b21df15"><div class="ttname"><a href="RepoManager_8cc.html#a6544f487e0f5c2fbf441f9e73b21df15">_root</a></div><div class="ttdeci">const Pathname &amp; _root</div><div class="ttdef"><b>Definition:</b> <a href="RepoManager_8cc_source.html#l00145">RepoManager.cc:145</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1RpmRemovePackageReceiver_html"><div class="ttname"><a href="classzypp_1_1target_1_1RpmRemovePackageReceiver.html">zypp::target::RpmRemovePackageReceiver</a></div><div class="ttdef"><b>Definition:</b> <a href="TargetCallbackReceiver_8h_source.html#l00069">TargetCallbackReceiver.h:69</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_ac05bc7ce03b8229922c1b6db19821b81"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#ac05bc7ce03b8229922c1b6db19821b81">zypp::target::TargetImpl::reload</a></div><div class="ttdeci">void reload()</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l00979">TargetImpl.cc:979</a></div></div>
<div class="ttc" id="namespacezypp_1_1str_html_adb668ecb122eb6de2d61fa3b3cbea555"><div class="ttname"><a href="namespacezypp_1_1str.html#adb668ecb122eb6de2d61fa3b3cbea555">zypp::str::toLower</a></div><div class="ttdeci">std::string toLower(const std::string &amp;s)</div><div class="ttdoc">Return lowercase version of s.</div><div class="ttdef"><b>Definition:</b> <a href="String_8cc_source.html#l00175">String.cc:175</a></div></div>
<div class="ttc" id="structzypp_1_1sat_1_1SolvableType_html_a4dcec1377745830820dfd35e11e4c61d"><div class="ttname"><a href="structzypp_1_1sat_1_1SolvableType.html#a4dcec1377745830820dfd35e11e4c61d">zypp::sat::SolvableType::identTriggersRebootNeededHint</a></div><div class="ttdeci">bool identTriggersRebootNeededHint() const</div><div class="ttdef"><b>Definition:</b> <a href="SolvableType_8h_source.html#l00083">SolvableType.h:83</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_ad12090f70667f900edbb3ea69eb1f6d2"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#ad12090f70667f900edbb3ea69eb1f6d2">zypp::target::TargetImpl::home</a></div><div class="ttdeci">Pathname home() const</div><div class="ttdoc">The directory to store things.</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8h_source.html#l00120">TargetImpl.h:120</a></div></div>
<div class="ttc" id="namespacezypp_1_1filesystem_html_ad608856a54835fb9200d63fc0720e6a1"><div class="ttname"><a href="namespacezypp_1_1filesystem.html#ad608856a54835fb9200d63fc0720e6a1">zypp::filesystem::touch</a></div><div class="ttdeci">int touch(const Pathname &amp;path)</div><div class="ttdoc">Change file's modification and access times.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8cc_source.html#l01184">PathInfo.cc:1184</a></div></div>
<div class="ttc" id="namespacezypp_1_1target_html_aecd0329fa2bb775b904fe6ebc6393b1b"><div class="ttname"><a href="namespacezypp_1_1target.html#aecd0329fa2bb775b904fe6ebc6393b1b">zypp::target::generateRandomId</a></div><div class="ttdeci">static std::string generateRandomId()</div><div class="ttdoc">generates a random id using uuidgen</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l00703">TargetImpl.cc:703</a></div></div>
<div class="ttc" id="classzypp_1_1AutoDispose_html_a521dbb5b910cd99a33850c12de8987d5"><div class="ttname"><a href="classzypp_1_1AutoDispose.html#a521dbb5b910cd99a33850c12de8987d5">zypp::AutoDispose::resetDispose</a></div><div class="ttdeci">void resetDispose()</div><div class="ttdoc">Set no dispose function.</div><div class="ttdef"><b>Definition:</b> <a href="AutoDispose_8h_source.html#l00162">AutoDispose.h:162</a></div></div>
<div class="ttc" id="classzypp_1_1repo_1_1RepoMediaAccess_html"><div class="ttname"><a href="classzypp_1_1repo_1_1RepoMediaAccess.html">zypp::repo::RepoMediaAccess</a></div><div class="ttdoc">Provides files from different repos.</div><div class="ttdef"><b>Definition:</b> <a href="RepoProvideFile_8h_source.html#l00060">RepoProvideFile.h:60</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1CommitPackageCache_html_ac5dd8397df32416bb05ac10f7971e1ce"><div class="ttname"><a href="classzypp_1_1target_1_1CommitPackageCache.html#ac5dd8397df32416bb05ac10f7971e1ce">zypp::target::CommitPackageCache::get</a></div><div class="ttdeci">ManagedFile get(const PoolItem &amp;citem_r)</div><div class="ttdoc">Provide a package.</div><div class="ttdef"><b>Definition:</b> <a href="CommitPackageCache_8cc_source.html#l00142">CommitPackageCache.cc:142</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a9a31841013bb8fc1c6be3d8e7733e8bc"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a9a31841013bb8fc1c6be3d8e7733e8bc">zypp::target::TargetImpl::_hardLocksFile</a></div><div class="ttdeci">HardLocksFile _hardLocksFile</div><div class="ttdoc">Hard-Locks database.</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8h_source.html#l00221">TargetImpl.h:221</a></div></div>
<div class="ttc" id="namespacezypp_1_1sat_1_1detail_html_ac0d3ca93132eee14b022898f23b49d07"><div class="ttname"><a href="namespacezypp_1_1sat_1_1detail.html#ac0d3ca93132eee14b022898f23b49d07">zypp::sat::detail::size_type</a></div><div class="ttdeci">SolvableIdType size_type</div><div class="ttdef"><b>Definition:</b> <a href="PoolMember_8h_source.html#l00152">PoolMember.h:152</a></div></div>
<div class="ttc" id="LogTools_8h_html"><div class="ttname"><a href="LogTools_8h.html">LogTools.h</a></div></div>
<div class="ttc" id="classzypp_1_1Repository_html"><div class="ttname"><a href="classzypp_1_1Repository.html">zypp::Repository</a></div><div class="ttdef"><b>Definition:</b> <a href="Repository_8h_source.html#l00039">Repository.h:39</a></div></div>
<div class="ttc" id="classzypp_1_1HistoryLog_html_a3cd0552d0a48692934226b234edeb3de"><div class="ttname"><a href="classzypp_1_1HistoryLog.html#a3cd0552d0a48692934226b234edeb3de">zypp::HistoryLog::setRoot</a></div><div class="ttdeci">static void setRoot(const Pathname &amp;root)</div><div class="ttdoc">Set new root directory to the default history log file path.</div><div class="ttdef"><b>Definition:</b> <a href="HistoryLog_8cc_source.html#l00163">HistoryLog.cc:163</a></div></div>
<div class="ttc" id="classzypp_1_1ExternalProgram_html_ac72fa79ccdbaa0f7fc9560b291dd4216"><div class="ttname"><a href="classzypp_1_1ExternalProgram.html#ac72fa79ccdbaa0f7fc9560b291dd4216">zypp::ExternalProgram::close</a></div><div class="ttdeci">int close()</div><div class="ttdoc">Wait for the progamm to complete.</div><div class="ttdef"><b>Definition:</b> <a href="ExternalProgram_8cc_source.html#l00436">ExternalProgram.cc:436</a></div></div>
<div class="ttc" id="classzypp_1_1ResPool_html_aae1acad12c0d2fad291981c454a0763b"><div class="ttname"><a href="classzypp_1_1ResPool.html#aae1acad12c0d2fad291981c454a0763b">zypp::ResPool::byKindEnd</a></div><div class="ttdeci">byKind_iterator byKindEnd(const ResKind &amp;kind_r) const</div><div class="ttdef"><b>Definition:</b> <a href="ResPool_8h_source.html#l00268">ResPool.h:268</a></div></div>
<div class="ttc" id="classzypp_1_1ResPool_html_a5f70787cb8b9b08dfc712455eba6bd1b"><div class="ttname"><a href="classzypp_1_1ResPool.html#a5f70787cb8b9b08dfc712455eba6bd1b">zypp::ResPool::setHardLockQueries</a></div><div class="ttdeci">void setHardLockQueries(const HardLockQueries &amp;newLocks_r)</div><div class="ttdoc">Set a new set of queries.</div><div class="ttdef"><b>Definition:</b> <a href="ResPool_8cc_source.html#l00098">ResPool.cc:98</a></div></div>
<div class="ttc" id="sat_2detail_2PoolImpl_8h_html"><div class="ttname"><a href="sat_2detail_2PoolImpl_8h.html">PoolImpl.h</a></div></div>
<div class="ttc" id="TargetImpl_8cc_html_a32d03a48d7908871246afaf63302bc9d"><div class="ttname"><a href="TargetImpl_8cc.html#a32d03a48d7908871246afaf63302bc9d">SUBST_IF</a></div><div class="ttdeci">#define SUBST_IF(PAT, VAL)</div></div>
<div class="ttc" id="namespacezypp_html_acd74b4b3696e34dd6934c147176712db"><div class="ttname"><a href="namespacezypp.html#acd74b4b3696e34dd6934c147176712db">zypp::UpdateNotifications</a></div><div class="ttdeci">std::list&lt; UpdateNotificationFile &gt; UpdateNotifications</div><div class="ttdef"><b>Definition:</b> <a href="ZYppCommitResult_8h_source.html#l00047">ZYppCommitResult.h:47</a></div></div>
<div class="ttc" id="CommitPackageCache_8h_html"><div class="ttname"><a href="CommitPackageCache_8h.html">CommitPackageCache.h</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Queue_html"><div class="ttname"><a href="classzypp_1_1sat_1_1Queue.html">zypp::sat::Queue</a></div><div class="ttdoc">Libsolv Id queue wrapper.</div><div class="ttdef"><b>Definition:</b> <a href="Queue_8h_source.html#l00034">Queue.h:34</a></div></div>
<div class="ttc" id="UserRequestException_8h_html"><div class="ttname"><a href="UserRequestException_8h.html">UserRequestException.h</a></div></div>
<div class="ttc" id="group__ZYPP__THROW_html_ga0a6d828c3e5802c5ca1ab6f5a86e9fc1"><div class="ttname"><a href="group__ZYPP__THROW.html#ga0a6d828c3e5802c5ca1ab6f5a86e9fc1">ZYPP_CAUGHT</a></div><div class="ttdeci">#define ZYPP_CAUGHT(EXCPT)</div><div class="ttdoc">Drops a logline telling the Exception was caught (in order to handle it).</div><div class="ttdef"><b>Definition:</b> <a href="Exception_8h_source.html#l00396">Exception.h:396</a></div></div>
<div class="ttc" id="namespacezypp_1_1filesystem_html_a424d384472de80e5cc48f5d5662cc859"><div class="ttname"><a href="namespacezypp_1_1filesystem.html#a424d384472de80e5cc48f5d5662cc859">zypp::filesystem::readdir</a></div><div class="ttdeci">int readdir(std::list&lt; std::string &gt; &amp;retlist_r, const Pathname &amp;path_r, bool dots_r)</div><div class="ttdoc">Return content of directory via retlist.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8cc_source.html#l00589">PathInfo.cc:589</a></div></div>
<div class="ttc" id="PathInfo_8h_html"><div class="ttname"><a href="PathInfo_8h.html">PathInfo.h</a></div></div>
<div class="ttc" id="classzypp_1_1SrcPackage_html"><div class="ttname"><a href="classzypp_1_1SrcPackage.html">zypp::SrcPackage</a></div><div class="ttdoc">SrcPackage interface.</div><div class="ttdef"><b>Definition:</b> <a href="SrcPackage_8h_source.html#l00029">SrcPackage.h:29</a></div></div>
<div class="ttc" id="ProductFileReader_8h_html"><div class="ttname"><a href="ProductFileReader_8h.html">ProductFileReader.h</a></div></div>
<div class="ttc" id="classzypp_1_1Resolver_html_a74e85b8d05e50b8af967f03cc99a9a8a"><div class="ttname"><a href="classzypp_1_1Resolver.html#a74e85b8d05e50b8af967f03cc99a9a8a">zypp::Resolver::upgradeMode</a></div><div class="ttdeci">bool upgradeMode() const</div><div class="ttdef"><b>Definition:</b> <a href="Resolver_8cc_source.html#l00098">Resolver.cc:98</a></div></div>
<div class="ttc" id="classzypp_1_1ResPool_html"><div class="ttname"><a href="classzypp_1_1ResPool.html">zypp::ResPool</a></div><div class="ttdoc">Global ResObject pool.</div><div class="ttdef"><b>Definition:</b> <a href="ResPool_8h_source.html#l00060">ResPool.h:60</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1SolvIdentFile_html"><div class="ttname"><a href="classzypp_1_1target_1_1SolvIdentFile.html">zypp::target::SolvIdentFile</a></div><div class="ttdoc">Save and restore a list of solvable names (ident IdString)</div><div class="ttdef"><b>Definition:</b> <a href="SolvIdentFile_8h_source.html#l00033">SolvIdentFile.h:33</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a90899160b17dad09ecee7cc7d1a3d46c"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a90899160b17dad09ecee7cc7d1a3d46c">zypp::target::TargetImpl::baseProduct</a></div><div class="ttdeci">Product::constPtr baseProduct() const</div><div class="ttdoc">returns the target base installed product, also known as the distribution or platform.</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l01760">TargetImpl.cc:1760</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a7b2a6d9f76ccecca46cd87cb3a4fa96f"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a7b2a6d9f76ccecca46cd87cb3a4fa96f">zypp::target::TargetImpl::createAnonymousId</a></div><div class="ttdeci">void createAnonymousId() const</div><div class="ttdoc">generates the unique anonymous id which is called when creating the target</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l00754">TargetImpl.cc:754</a></div></div>
<div class="ttc" id="classzypp_1_1ZYppCommitPolicy_html_a887e8b3cca8feabdc5337fec3e242a76"><div class="ttname"><a href="classzypp_1_1ZYppCommitPolicy.html#a887e8b3cca8feabdc5337fec3e242a76">zypp::ZYppCommitPolicy::allMedia</a></div><div class="ttdeci">ZYppCommitPolicy &amp; allMedia()</div><div class="ttdoc">Process all media (default)</div><div class="ttdef"><b>Definition:</b> <a href="ZYppCommitPolicy_8h_source.html#l00048">ZYppCommitPolicy.h:48</a></div></div>
<div class="ttc" id="ExternalProgram_8h_html"><div class="ttname"><a href="ExternalProgram_8h.html">ExternalProgram.h</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Transaction_html_a6e1527e9abad77dfaa9001350fe6dd0b"><div class="ttname"><a href="classzypp_1_1sat_1_1Transaction.html#a6e1527e9abad77dfaa9001350fe6dd0b">zypp::sat::Transaction::begin</a></div><div class="ttdeci">const_iterator begin() const</div><div class="ttdoc">Iterator to the first TransactionStep.</div><div class="ttdef"><b>Definition:</b> <a href="Transaction_8cc_source.html#l00335">Transaction.cc:335</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1HardLocksFile_html_aa553b39a8f33149e6f1047d005044c0e"><div class="ttname"><a href="classzypp_1_1target_1_1HardLocksFile.html#aa553b39a8f33149e6f1047d005044c0e">zypp::target::HardLocksFile::Data</a></div><div class="ttdeci">pool::PoolTraits::HardLockQueries Data</div><div class="ttdef"><b>Definition:</b> <a href="HardLocksFile_8h_source.html#l00041">HardLocksFile.h:41</a></div></div>
<div class="ttc" id="structzypp_1_1json_1_1Array_html_ad62ce89c3b4ee36c7085cb6dae5e677f"><div class="ttname"><a href="structzypp_1_1json_1_1Array.html#ad62ce89c3b4ee36c7085cb6dae5e677f">zypp::json::Array::add</a></div><div class="ttdeci">void add(const Value &amp;val_r)</div><div class="ttdoc">Push JSON Value to Array.</div><div class="ttdef"><b>Definition:</b> <a href="Json_8h_source.html#l00271">Json.h:271</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Transaction_1_1Step_html_a590081f3ae28d825a2ed8a116efbf6f3"><div class="ttname"><a href="classzypp_1_1sat_1_1Transaction_1_1Step.html#a590081f3ae28d825a2ed8a116efbf6f3">zypp::sat::Transaction::Step::stepType</a></div><div class="ttdeci">StepType stepType() const</div><div class="ttdoc">Type of action to perform in this step.</div><div class="ttdef"><b>Definition:</b> <a href="Transaction_8cc_source.html#l00386">Transaction.cc:386</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1HardLocksFile_html_a908172daf8bb5b0f7dbd9ca947b62786"><div class="ttname"><a href="classzypp_1_1target_1_1HardLocksFile.html#a908172daf8bb5b0f7dbd9ca947b62786">zypp::target::HardLocksFile::data</a></div><div class="ttdeci">const Data &amp; data() const</div><div class="ttdoc">Return the data.</div><div class="ttdef"><b>Definition:</b> <a href="HardLocksFile_8h_source.html#l00057">HardLocksFile.h:57</a></div></div>
<div class="ttc" id="classzypp_1_1Exception_html"><div class="ttname"><a href="classzypp_1_1Exception.html">zypp::Exception</a></div><div class="ttdoc">Base class for Exception.</div><div class="ttdef"><b>Definition:</b> <a href="Exception_8h_source.html#l00145">Exception.h:145</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1CommitPackageCache_html_a891d6689543bbd8ddad56b1152c66e42"><div class="ttname"><a href="classzypp_1_1target_1_1CommitPackageCache.html#a891d6689543bbd8ddad56b1152c66e42">zypp::target::CommitPackageCache::preloaded</a></div><div class="ttdeci">bool preloaded() const</div><div class="ttdoc">Whether preloaded hint is set.</div><div class="ttdef"><b>Definition:</b> <a href="CommitPackageCache_8cc_source.html#l00145">CommitPackageCache.cc:145</a></div></div>
<div class="ttc" id="classzypp_1_1PluginExecutor_html_a7e37b4a7bc1c2e7770d2f547efe01598"><div class="ttname"><a href="classzypp_1_1PluginExecutor.html#a7e37b4a7bc1c2e7770d2f547efe01598">zypp::PluginExecutor::load</a></div><div class="ttdeci">void load(const Pathname &amp;path_r)</div><div class="ttdoc">Find and launch plugins sending PLUGINBEGIN.</div><div class="ttdef"><b>Definition:</b> <a href="PluginExecutor_8cc_source.html#l00170">PluginExecutor.cc:170</a></div></div>
<div class="ttc" id="classzypp_1_1parser_1_1ProductFileData_html"><div class="ttname"><a href="classzypp_1_1parser_1_1ProductFileData.html">zypp::parser::ProductFileData</a></div><div class="ttdoc">Data returned by ProductFileReader.</div><div class="ttdef"><b>Definition:</b> <a href="ProductFileReader_8h_source.html#l00040">ProductFileReader.h:40</a></div></div>
<div class="ttc" id="ShutdownLock__p_8h_html"><div class="ttname"><a href="ShutdownLock__p_8h.html">ShutdownLock_p.h</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a7d1699664a13a84ff6dc2544c949e64e"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a7d1699664a13a84ff6dc2544c949e64e">zypp::target::TargetImpl::unload</a></div><div class="ttdeci">void unload()</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l00984">TargetImpl.cc:984</a></div></div>
<div class="ttc" id="structzypp_1_1json_1_1Array_html_a3ed607c98fb45379b9fd4971e363f757"><div class="ttname"><a href="structzypp_1_1json_1_1Array.html#a3ed607c98fb45379b9fd4971e363f757">zypp::json::Array::asJSON</a></div><div class="ttdeci">std::string asJSON() const</div><div class="ttdoc">JSON representation.</div><div class="ttdef"><b>Definition:</b> <a href="Json_8h_source.html#l00279">Json.h:279</a></div></div>
<div class="ttc" id="classzypp_1_1HistoryLog_html_a57cf18a3b551230ce51c473196cb33a5"><div class="ttname"><a href="classzypp_1_1HistoryLog.html#a57cf18a3b551230ce51c473196cb33a5">zypp::HistoryLog::remove</a></div><div class="ttdeci">void remove(const PoolItem &amp;pi)</div><div class="ttdoc">Log removal of a package.</div><div class="ttdef"><b>Definition:</b> <a href="HistoryLog_8cc_source.html#l00261">HistoryLog.cc:261</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Transaction_html_af8597d5471ec4b6f36571fa6a07cb806a0140e6fdbc5054f1cb0dcce68edba813"><div class="ttname"><a href="classzypp_1_1sat_1_1Transaction.html#af8597d5471ec4b6f36571fa6a07cb806a0140e6fdbc5054f1cb0dcce68edba813">zypp::sat::Transaction::STEP_DONE</a></div><div class="ttdoc">[OK] success</div><div class="ttdef"><b>Definition:</b> <a href="Transaction_8h_source.html#l00074">Transaction.h:74</a></div></div>
<div class="ttc" id="MediaCurl_8cc_html_a4e0826ef1eedfec4b8c01665fedeb6d6"><div class="ttname"><a href="MediaCurl_8cc.html#a4e0826ef1eedfec4b8c01665fedeb6d6">report</a></div><div class="ttdeci">callback::SendReport&lt; DownloadProgressReport &gt; * report</div><div class="ttdef"><b>Definition:</b> <a href="MediaCurl_8cc_source.html#l00203">MediaCurl.cc:203</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1rpm_1_1RpmDb_html_a51a9dd512308e5bab3834ebd9e3f3438"><div class="ttname"><a href="classzypp_1_1target_1_1rpm_1_1RpmDb.html#a51a9dd512308e5bab3834ebd9e3f3438">zypp::target::rpm::RpmDb::initDatabase</a></div><div class="ttdeci">void initDatabase(Pathname root_r=Pathname(), Pathname dbPath_r=Pathname(), bool doRebuild_r=false)</div><div class="ttdoc">Prepare access to the rpm database.</div><div class="ttdef"><b>Definition:</b> <a href="RpmDb_8cc_source.html#l00315">RpmDb.cc:315</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1rpm_1_1RpmDb_html_a7add3bf902cd34c71c74ff6cc4fd020b"><div class="ttname"><a href="classzypp_1_1target_1_1rpm_1_1RpmDb.html#a7add3bf902cd34c71c74ff6cc4fd020b">zypp::target::rpm::RpmDb::removePackage</a></div><div class="ttdeci">void removePackage(const std::string &amp;name_r, RpmInstFlags flags=RPMINST_NONE)</div><div class="ttdoc">remove rpm package</div><div class="ttdef"><b>Definition:</b> <a href="RpmDb_8cc_source.html#l02144">RpmDb.cc:2144</a></div></div>
<div class="ttc" id="classzypp_1_1Edition_html_ac4140fa590061a1f0d33b6d695d9b7ca"><div class="ttname"><a href="classzypp_1_1Edition.html#ac4140fa590061a1f0d33b6d695d9b7ca">zypp::Edition::epoch</a></div><div class="ttdeci">epoch_t epoch() const</div><div class="ttdoc">Epoch.</div><div class="ttdef"><b>Definition:</b> <a href="Edition_8cc_source.html#l00082">Edition.cc:82</a></div></div>
<div class="ttc" id="classzypp_1_1ZConfig_html_aeecbb04f0da7d61e957276ddee1377ff"><div class="ttname"><a href="classzypp_1_1ZConfig.html#aeecbb04f0da7d61e957276ddee1377ff">zypp::ZConfig::distroverpkg</a></div><div class="ttdeci">std::string distroverpkg() const</div><div class="ttdoc">Package telling the &quot;product version&quot; on systems not using /etc/product.d/baseproduct.</div><div class="ttdef"><b>Definition:</b> <a href="ZConfig_8cc_source.html#l01170">ZConfig.cc:1170</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a9aab7cfcffbd677912a3a1ba15b670c2"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a9aab7cfcffbd677912a3a1ba15b670c2">zypp::target::TargetImpl::root</a></div><div class="ttdeci">Pathname root() const</div><div class="ttdoc">The root set for this target.</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8h_source.html#l00116">TargetImpl.h:116</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a96718d89ab3c77db23a20c0c0257d387"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a96718d89ab3c77db23a20c0c0257d387">zypp::target::TargetImpl::~TargetImpl</a></div><div class="ttdeci">virtual ~TargetImpl()</div><div class="ttdoc">Dtor.</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l00812">TargetImpl.cc:812</a></div></div>
<div class="ttc" id="classzypp_1_1AutoDispose_html"><div class="ttname"><a href="classzypp_1_1AutoDispose.html">zypp::AutoDispose</a></div><div class="ttdoc">Reference counted access to a Tp object calling a custom Dispose function when the last AutoDispose h...</div><div class="ttdef"><b>Definition:</b> <a href="AutoDispose_8h_source.html#l00092">AutoDispose.h:92</a></div></div>
<div class="ttc" id="Iterator_8h_html"><div class="ttname"><a href="Iterator_8h.html">Iterator.h</a></div></div>
<div class="ttc" id="HistoryLog_8h_html"><div class="ttname"><a href="HistoryLog_8h.html">HistoryLog.h</a></div></div>
<div class="ttc" id="classzypp_1_1Repository_html_af687417766f13436374cef99e8574a22"><div class="ttname"><a href="classzypp_1_1Repository.html#af687417766f13436374cef99e8574a22">zypp::Repository::eraseFromPool</a></div><div class="ttdeci">void eraseFromPool()</div><div class="ttdoc">Remove this Repository from it's Pool.</div><div class="ttdef"><b>Definition:</b> <a href="Repository_8cc_source.html#l00297">Repository.cc:297</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Pool_html"><div class="ttname"><a href="classzypp_1_1sat_1_1Pool.html">zypp::sat::Pool</a></div><div class="ttdoc">Global sat-pool.</div><div class="ttdef"><b>Definition:</b> <a href="Pool_8h_source.html#l00044">Pool.h:44</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Transaction_html_acc041dbe1a42f50a156ef630ade4021ea603d57d09ebfee7dd5533442ab94a8de"><div class="ttname"><a href="classzypp_1_1sat_1_1Transaction.html#acc041dbe1a42f50a156ef630ade4021ea603d57d09ebfee7dd5533442ab94a8de">zypp::sat::Transaction::TRANSACTION_INSTALL</a></div><div class="ttdoc">[+] Install(update) item</div><div class="ttdef"><b>Definition:</b> <a href="Transaction_8h_source.html#l00066">Transaction.h:66</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1rpm_1_1RpmDb_html_afe62af8df524e1a1166c432858071a48"><div class="ttname"><a href="classzypp_1_1target_1_1rpm_1_1RpmDb.html#afe62af8df524e1a1166c432858071a48">zypp::target::rpm::RpmDb::hasFile</a></div><div class="ttdeci">bool hasFile(const std::string &amp;file_r, const std::string &amp;name_r=&quot;&quot;) const</div><div class="ttdoc">Return true if at least one package owns a certain file (name_r empty) Return true if package name_r ...</div><div class="ttdef"><b>Definition:</b> <a href="RpmDb_8cc_source.html#l01339">RpmDb.cc:1339</a></div></div>
<div class="ttc" id="classzypp_1_1HistoryLog_html_ade928588f3c1325ba80195464a3013f1"><div class="ttname"><a href="classzypp_1_1HistoryLog.html#ade928588f3c1325ba80195464a3013f1">zypp::HistoryLog::comment</a></div><div class="ttdeci">void comment(const std::string &amp;comment, bool timestamp=false)</div><div class="ttdoc">Log a comment (even multiline).</div><div class="ttdef"><b>Definition:</b> <a href="HistoryLog_8cc_source.html#l00188">HistoryLog.cc:188</a></div></div>
<div class="ttc" id="classzypp_1_1SrcPackage_html_aab481e5e070b41c4767b4be394dc3953"><div class="ttname"><a href="classzypp_1_1SrcPackage.html#aab481e5e070b41c4767b4be394dc3953">zypp::SrcPackage::constPtr</a></div><div class="ttdeci">TraitsType::constPtrType constPtr</div><div class="ttdef"><b>Definition:</b> <a href="SrcPackage_8h_source.html#l00036">SrcPackage.h:36</a></div></div>
<div class="ttc" id="classzypp_1_1filesystem_1_1PathInfo_html"><div class="ttname"><a href="classzypp_1_1filesystem_1_1PathInfo.html">zypp::filesystem::PathInfo</a></div><div class="ttdoc">Wrapper class for ::stat/::lstat.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8h_source.html#l00220">PathInfo.h:220</a></div></div>
<div class="ttc" id="classzypp_1_1ExternalProgram_html_addd37559311e2d7c296f7f8d3bbb65baaaba72a64b32a67070ba03a24f0d3d6b0"><div class="ttname"><a href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65baaaba72a64b32a67070ba03a24f0d3d6b0">zypp::ExternalProgram::Stderr_To_Stdout</a></div><div class="ttdef"><b>Definition:</b> <a href="ExternalProgram_8h_source.html#l00073">ExternalProgram.h:73</a></div></div>
<div class="ttc" id="classzypp_1_1Repository_html_a4cd4e7ece7a0638875d8ead059066630"><div class="ttname"><a href="classzypp_1_1Repository.html#a4cd4e7ece7a0638875d8ead059066630">zypp::Repository::solvablesEmpty</a></div><div class="ttdeci">bool solvablesEmpty() const</div><div class="ttdoc">Whether Repository contains solvables.</div><div class="ttdef"><b>Definition:</b> <a href="Repository_8cc_source.html#l00219">Repository.cc:219</a></div></div>
<div class="ttc" id="namespacezypp_html_aa98a7bf54b222ed49cb4422d333f1ade"><div class="ttname"><a href="namespacezypp.html#aa98a7bf54b222ed49cb4422d333f1ade">zypp::makeResObject</a></div><div class="ttdeci">ResObject::Ptr makeResObject(const sat::Solvable &amp;solvable_r)</div><div class="ttdoc">Create ResObject from sat::Solvable.</div><div class="ttdef"><b>Definition:</b> <a href="ResObject_8cc_source.html#l00044">ResObject.cc:44</a></div></div>
<div class="ttc" id="classzypp_1_1ZYppCommitResult_html_af25b4620f2b6050ffbb21e3a19e5eb9b"><div class="ttname"><a href="classzypp_1_1ZYppCommitResult.html#af25b4620f2b6050ffbb21e3a19e5eb9b">zypp::ZYppCommitResult::rTransaction</a></div><div class="ttdeci">sat::Transaction &amp; rTransaction()</div><div class="ttdoc">Manipulate transaction.</div><div class="ttdef"><b>Definition:</b> <a href="ZYppCommitResult_8cc_source.html#l00080">ZYppCommitResult.cc:80</a></div></div>
<div class="ttc" id="classzypp_1_1PoolItem_html"><div class="ttname"><a href="classzypp_1_1PoolItem.html">zypp::PoolItem</a></div><div class="ttdoc">Combining sat::Solvable and ResStatus.</div><div class="ttdef"><b>Definition:</b> <a href="PoolItem_8h_source.html#l00050">PoolItem.h:50</a></div></div>
<div class="ttc" id="classzypp_1_1ZConfig_html_a5a5c16f4c73d1e8613108f7fbb5240fd"><div class="ttname"><a href="classzypp_1_1ZConfig.html#a5a5c16f4c73d1e8613108f7fbb5240fd">zypp::ZConfig::systemRoot</a></div><div class="ttdeci">Pathname systemRoot() const</div><div class="ttdoc">The target root directory.</div><div class="ttdef"><b>Definition:</b> <a href="ZConfig_8cc_source.html#l00819">ZConfig.cc:819</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a37c77e5b26b10c9dd3a375c59c477b8d"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a37c77e5b26b10c9dd3a375c59c477b8d">zypp::target::TargetImpl::provideSrcPackage</a></div><div class="ttdeci">ManagedFile provideSrcPackage(const SrcPackage_constPtr &amp;srcPackage_r)</div><div class="ttdoc">Provides a source package on the Target.</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l01916">TargetImpl.cc:1916</a></div></div>
<div class="ttc" id="classzypp_1_1filesystem_1_1TmpFile_html_a8c556348853d60f1b4868548275cebe6"><div class="ttname"><a href="classzypp_1_1filesystem_1_1TmpFile.html#a8c556348853d60f1b4868548275cebe6">zypp::filesystem::TmpFile::makeSibling</a></div><div class="ttdeci">static TmpFile makeSibling(const Pathname &amp;sibling_r)</div><div class="ttdoc">Provide a new empty temporary directory as sibling.</div><div class="ttdef"><b>Definition:</b> <a href="TmpPath_8cc_source.html#l00218">TmpPath.cc:218</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a90a637b837bee8c6340df9734a6306f1"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a90a637b837bee8c6340df9734a6306f1">zypp::target::TargetImpl::distributionLabel</a></div><div class="ttdeci">Target::DistributionLabel distributionLabel() const</div><div class="ttdoc">This is shortName and summary attribute of the installed base product.</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l01808">TargetImpl.cc:1808</a></div></div>
<div class="ttc" id="classzypp_1_1RepoStatus_html"><div class="ttname"><a href="classzypp_1_1RepoStatus.html">zypp::RepoStatus</a></div><div class="ttdoc">Track changing files or directories.</div><div class="ttdef"><b>Definition:</b> <a href="RepoStatus_8h_source.html#l00038">RepoStatus.h:38</a></div></div>
<div class="ttc" id="classzypp_1_1IdString_html_aac331154f11ed8c31ac5e74b117bf000"><div class="ttname"><a href="classzypp_1_1IdString.html#aac331154f11ed8c31ac5e74b117bf000">zypp::IdString::asString</a></div><div class="ttdeci">std::string asString() const</div><div class="ttdoc">Conversion to std::string</div><div class="ttdef"><b>Definition:</b> <a href="IdString_8h_source.html#l00091">IdString.h:91</a></div></div>
<div class="ttc" id="structzypp_1_1sat_1_1SolvableType_html_a32e023c8e4b8f823ffa8561e3e15ec7f"><div class="ttname"><a href="structzypp_1_1sat_1_1SolvableType.html#a32e023c8e4b8f823ffa8561e3e15ec7f">zypp::sat::SolvableType::isKind</a></div><div class="ttdeci">bool isKind(const ResKind &amp;kind_r) const</div><div class="ttdef"><b>Definition:</b> <a href="SolvableType_8h_source.html#l00064">SolvableType.h:64</a></div></div>
<div class="ttc" id="Functional_8h_html"><div class="ttname"><a href="Functional_8h.html">Functional.h</a></div></div>
<div class="ttc" id="namespacezypp_1_1json_html_a06176c8c90aebee4cc9e7b06f286d62f"><div class="ttname"><a href="namespacezypp_1_1json.html#a06176c8c90aebee4cc9e7b06f286d62f">zypp::json::toJSON</a></div><div class="ttdeci">std::string toJSON(const sat::Transaction::Step &amp;step_r)</div><div class="ttdoc">See COMMITBEGIN (added in v1) on page Commit plugin for the specs.</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l00100">TargetImpl.cc:100</a></div></div>
<div class="ttc" id="classzypp_1_1Arch_html_ae237347f0d2eeb0f87c024538e479e99"><div class="ttname"><a href="classzypp_1_1Arch.html#ae237347f0d2eeb0f87c024538e479e99">zypp::Arch::asString</a></div><div class="ttdeci">const std::string &amp; asString() const</div><div class="ttdef"><b>Definition:</b> <a href="Arch_8cc_source.html#l00481">Arch.cc:481</a></div></div>
<div class="ttc" id="namespacezypp_1_1target_html_a39877703467da443328251ff5e4c240d"><div class="ttname"><a href="namespacezypp_1_1target.html#a39877703467da443328251ff5e4c240d">zypp::target::XRunUpdateMessages</a></div><div class="ttdeci">void XRunUpdateMessages(const Pathname &amp;root_r, const Pathname &amp;messagesPath_r, const std::vector&lt; sat::Solvable &gt; &amp;checkPackages_r, ZYppCommitResult &amp;result_r)</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l00670">TargetImpl.cc:670</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_ab73a5df48db88ee0ca75b23302151aa1"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#ab73a5df48db88ee0ca75b23302151aa1">zypp::target::TargetImpl::distributionFlavor</a></div><div class="ttdeci">std::string distributionFlavor() const</div><div class="ttdoc">This is flavor attribute of the installed base product but does not require the target to be loaded a...</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l01867">TargetImpl.cc:1867</a></div></div>
<div class="ttc" id="classzypp_1_1Repository_html_a8fedcfd3395a24f53079c9390c3122b7"><div class="ttname"><a href="classzypp_1_1Repository.html#a8fedcfd3395a24f53079c9390c3122b7">zypp::Repository::solvablesSize</a></div><div class="ttdeci">size_type solvablesSize() const</div><div class="ttdoc">Number of solvables in Repository.</div><div class="ttdef"><b>Definition:</b> <a href="Repository_8cc_source.html#l00225">Repository.cc:225</a></div></div>
<div class="ttc" id="classTarget__Ptr_html"><div class="ttname"><a href="classTarget__Ptr.html">Target_Ptr</a></div></div>
<div class="ttc" id="classzypp_1_1filesystem_1_1Pathname_html"><div class="ttname"><a href="classzypp_1_1filesystem_1_1Pathname.html">zypp::filesystem::Pathname</a></div><div class="ttdoc">Pathname.</div><div class="ttdef"><b>Definition:</b> <a href="Pathname_8h_source.html#l00043">Pathname.h:43</a></div></div>
<div class="ttc" id="namespacezypp_html"><div class="ttname"><a href="namespacezypp.html">zypp</a></div><div class="ttdoc">Easy-to use interface to the ZYPP dependency resolver.</div><div class="ttdef"><b>Definition:</b> <a href="CodePitfalls_8doc_source.html#l00001">CodePitfalls.doc:1</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1RpmInstallPackageReceiver_html"><div class="ttname"><a href="classzypp_1_1target_1_1RpmInstallPackageReceiver.html">zypp::target::RpmInstallPackageReceiver</a></div><div class="ttdef"><b>Definition:</b> <a href="TargetCallbackReceiver_8h_source.html#l00025">TargetCallbackReceiver.h:25</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1SolvIdentFile_html_ac3b4d2f79a1c969d8b4c50b23c173878"><div class="ttname"><a href="classzypp_1_1target_1_1SolvIdentFile.html#ac3b4d2f79a1c969d8b4c50b23c173878">zypp::target::SolvIdentFile::Data</a></div><div class="ttdeci">std::unordered_set&lt; IdString &gt; Data</div><div class="ttdef"><b>Definition:</b> <a href="SolvIdentFile_8h_source.html#l00037">SolvIdentFile.h:37</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_ad7e574d454002f7956fd5fe9086d2c42"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#ad7e574d454002f7956fd5fe9086d2c42">zypp::target::TargetImpl::defaultSolvfilesPath</a></div><div class="ttdeci">Pathname defaultSolvfilesPath() const</div><div class="ttdoc">The systems default solv file location.</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l00825">TargetImpl.cc:825</a></div></div>
<div class="ttc" id="Pool_8cc_html_a6fa95b1480497f007426f23fa2dbc23f"><div class="ttname"><a href="Pool_8cc.html#a6fa95b1480497f007426f23fa2dbc23f">idstr</a></div><div class="ttdeci">#define idstr(V)</div></div>
<div class="ttc" id="Exception_8h_html"><div class="ttname"><a href="Exception_8h.html">Exception.h</a></div></div>
<div class="ttc" id="structzypp_1_1sat_1_1SolvableType_html_a78de3f4b41f0965829beaa28245a25dd"><div class="ttname"><a href="structzypp_1_1sat_1_1SolvableType.html#a78de3f4b41f0965829beaa28245a25dd">zypp::sat::SolvableType::satSolvable</a></div><div class="ttdeci">Solvable satSolvable() const</div><div class="ttdoc">Return the corresponding sat::Solvable.</div><div class="ttdef"><b>Definition:</b> <a href="SolvableType_8h_source.html#l00057">SolvableType.h:57</a></div></div>
<div class="ttc" id="Transaction_8h_html"><div class="ttname"><a href="Transaction_8h.html">Transaction.h</a></div></div>
<div class="ttc" id="structzypp_1_1json_1_1Object_html_a1f8b57ce65140c3243beb4aabe3bfde9"><div class="ttname"><a href="structzypp_1_1json_1_1Object.html#a1f8b57ce65140c3243beb4aabe3bfde9">zypp::json::Object::add</a></div><div class="ttdeci">void add(const String &amp;key_r, const Value &amp;val_r)</div><div class="ttdoc">Add key/value pair.</div><div class="ttdef"><b>Definition:</b> <a href="Json_8h_source.html#l00336">Json.h:336</a></div></div>
<div class="ttc" id="namespacezypp_1_1str_html_a5e64cab973a815bfc5c3811b5086a2b9"><div class="ttname"><a href="namespacezypp_1_1str.html#a5e64cab973a815bfc5c3811b5086a2b9">zypp::str::hasPrefix</a></div><div class="ttdeci">bool hasPrefix(const C_Str &amp;str_r, const C_Str &amp;prefix_r)</div><div class="ttdoc">Return whether str_r has prefix prefix_r.</div><div class="ttdef"><b>Definition:</b> <a href="String_8h_source.html#l01020">String.h:1020</a></div></div>
<div class="ttc" id="PoolItem_8h_html"><div class="ttname"><a href="PoolItem_8h.html">PoolItem.h</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a7222390264247de9131baeb887274adf"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a7222390264247de9131baeb887274adf">zypp::target::TargetImpl::buildCache</a></div><div class="ttdeci">bool buildCache()</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l00836">TargetImpl.cc:836</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1CommitPackageCache_html_a79fdbc2bb1fd954c9396e29960276cc4"><div class="ttname"><a href="classzypp_1_1target_1_1CommitPackageCache.html#a79fdbc2bb1fd954c9396e29960276cc4">zypp::target::CommitPackageCache::setCommitList</a></div><div class="ttdeci">void setCommitList(std::vector&lt; sat::Solvable &gt; commitList_r)</div><div class="ttdoc">Download(commit) sequence of solvables to compute read ahead.</div><div class="ttdef"><b>Definition:</b> <a href="CommitPackageCache_8cc_source.html#l00139">CommitPackageCache.cc:139</a></div></div>
<div class="ttc" id="namespacezypp_1_1target_1_1rpm_html_a4c4781cc6d1baa791e7b97b8093beeb9a27e0a89a0663b11161f98a9a1af230e9"><div class="ttname"><a href="namespacezypp_1_1target_1_1rpm.html#a4c4781cc6d1baa791e7b97b8093beeb9a27e0a89a0663b11161f98a9a1af230e9">zypp::target::rpm::RPMINST_NOSIGNATURE</a></div><div class="ttdef"><b>Definition:</b> <a href="RpmFlags_8h_source.html#l00047">RpmFlags.h:47</a></div></div>
<div class="ttc" id="classzypp_1_1parser_1_1ProductFileData_html_a1fb4dfcabcc567bfe347932b38192aa8"><div class="ttname"><a href="classzypp_1_1parser_1_1ProductFileData.html#a1fb4dfcabcc567bfe347932b38192aa8">zypp::parser::ProductFileData::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdoc">Whether this is an empty object without valid data.</div><div class="ttdef"><b>Definition:</b> <a href="ProductFileReader_8h_source.html#l00048">ProductFileReader.h:48</a></div></div>
<div class="ttc" id="namespacezypp_html_a7f4c013fbe3bd2619b780e06c2c36c20"><div class="ttname"><a href="namespacezypp.html#a7f4c013fbe3bd2619b780e06c2c36c20">zypp::LocaleSet</a></div><div class="ttdeci">std::unordered_set&lt; Locale &gt; LocaleSet</div><div class="ttdef"><b>Definition:</b> <a href="Locale_8h_source.html#l00027">Locale.h:27</a></div></div>
<div class="ttc" id="TmpPath_8h_html"><div class="ttname"><a href="TmpPath_8h.html">TmpPath.h</a></div></div>
<div class="ttc" id="classzypp_1_1sat_1_1Transaction_1_1Step_html_a1592a00943f098adedbaebcd19f9bb07"><div class="ttname"><a href="classzypp_1_1sat_1_1Transaction_1_1Step.html#a1592a00943f098adedbaebcd19f9bb07">zypp::sat::Transaction::Step::arch</a></div><div class="ttdeci">Arch arch() const</div><div class="ttdef"><b>Definition:</b> <a href="Transaction_8cc_source.html#l00401">Transaction.cc:401</a></div></div>
<div class="ttc" id="TargetImpl_8cc_html_aaa3b6f69208c0140a8ce6730fd284243"><div class="ttname"><a href="TargetImpl_8cc.html#aaa3b6f69208c0140a8ce6730fd284243">_guard</a></div><div class="ttdeci">TrueBool _guard</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l01409">TargetImpl.cc:1409</a></div></div>
<div class="ttc" id="ZYppFactory_8h_html"><div class="ttname"><a href="ZYppFactory_8h.html">ZYppFactory.h</a></div></div>
<div class="ttc" id="PluginExecutor_8h_html"><div class="ttname"><a href="PluginExecutor_8h.html">PluginExecutor.h</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_a73510ff231400d6bb267040360acdd33"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#a73510ff231400d6bb267040360acdd33">zypp::target::TargetImpl::rpm</a></div><div class="ttdeci">rpm::RpmDb &amp; rpm()</div><div class="ttdoc">The RPM database.</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l01691">TargetImpl.cc:1691</a></div></div>
<div class="ttc" id="namespacezypp_1_1target_1_1rpm_html_a4c4781cc6d1baa791e7b97b8093beeb9a94080f683b374b639e6779aa75bfceab"><div class="ttname"><a href="namespacezypp_1_1target_1_1rpm.html#a4c4781cc6d1baa791e7b97b8093beeb9a94080f683b374b639e6779aa75bfceab">zypp::target::rpm::RPMINST_FORCE</a></div><div class="ttdef"><b>Definition:</b> <a href="RpmFlags_8h_source.html#l00042">RpmFlags.h:42</a></div></div>
<div class="ttc" id="classzypp_1_1Package_html_a8dd127525d177e04880787269d10491c"><div class="ttname"><a href="classzypp_1_1Package.html#a8dd127525d177e04880787269d10491c">zypp::Package::constPtr</a></div><div class="ttdeci">TraitsType::constPtrType constPtr</div><div class="ttdef"><b>Definition:</b> <a href="Package_8h_source.html#l00038">Package.h:38</a></div></div>
<div class="ttc" id="ReferenceCounted_8h_html_ac9f70b359e11c09eca21d9c85e5d6eea"><div class="ttname"><a href="ReferenceCounted_8h.html#ac9f70b359e11c09eca21d9c85e5d6eea">IMPL_PTR_TYPE</a></div><div class="ttdeci">#define IMPL_PTR_TYPE(NAME)</div><div class="ttdef"><b>Definition:</b> <a href="ReferenceCounted_8h_source.html#l00136">ReferenceCounted.h:136</a></div></div>
<div class="ttc" id="group__ZYPP__BASE__LOGGER__MACROS_html_ga49606be7356624568932ec81c0d429f4"><div class="ttname"><a href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a></div><div class="ttdeci">#define DBG</div><div class="ttdef"><b>Definition:</b> <a href="Logger_8h_source.html#l00078">Logger.h:78</a></div></div>
<div class="ttc" id="TargetImpl_8cc_html_a50cfd096d0b2a80d96453d4a465c54ad"><div class="ttname"><a href="TargetImpl_8cc.html#a50cfd096d0b2a80d96453d4a465c54ad">_result</a></div><div class="ttdeci">ZYppCommitResult &amp; _result</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l01410">TargetImpl.cc:1410</a></div></div>
<div class="ttc" id="classzypp_1_1ResPool_html_a35598ca6a635941d758dd092c5200c9c"><div class="ttname"><a href="classzypp_1_1ResPool.html#a35598ca6a635941d758dd092c5200c9c">zypp::ResPool::instance</a></div><div class="ttdeci">static ResPool instance()</div><div class="ttdoc">Singleton ctor.</div><div class="ttdef"><b>Definition:</b> <a href="ResPool_8cc_source.html#l00033">ResPool.cc:33</a></div></div>
<div class="ttc" id="classzypp_1_1target_1_1TargetImpl_html_ab22acb5f2c38cf23d371d1a9a5862407"><div class="ttname"><a href="classzypp_1_1target_1_1TargetImpl.html#ab22acb5f2c38cf23d371d1a9a5862407">zypp::target::TargetImpl::load</a></div><div class="ttdeci">void load(bool force=true)</div><div class="ttdef"><b>Definition:</b> <a href="TargetImpl_8cc_source.html#l00991">TargetImpl.cc:991</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_c187b43c6f283d9fc95eff3f44ce072a.html">zypp</a></li><li class="navelem"><a class="el" href="dir_73509bf2395cb6b629da63f82e7b0bb6.html">target</a></li><li class="navelem"><a class="el" href="TargetImpl_8cc.html">TargetImpl.cc</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
  </ul>
</div>
</body>
</html>