<br>On Wed, May 7, 2014 at 2:53 PM, Richard Hughes <hughsient@gmail.com> wrote:<br>
<blockquote type="cite"><div class="plaintext" style="white-space: pre-wrap;">On 6 May 2014 14:20, Colin Walters <walters@verbum.org> wrote:
<blockquote> Would that make sense?
</blockquote>
I think making ostree use libhif for installation too is a good idea.</div></blockquote><div><br></div><div>I'm interested in that, but I'm not sure how practical it's going to be in the short term.  The thing is that rpm-ostree is going to need to poke deeply into the RPM structure.  See:</div><div><br></div><div><a href="http://lists.rpm.org/pipermail/rpm-maint/2014-April/003682.html">http://lists.rpm.org/pipermail/rpm-maint/2014-April/003682.html</a></div><div><br></div><div>I'll need to be able to unpack the RPMs into a scratch area for inspection before attempting to install them.  Furthermore, I want to keep the RPMs inside the local ostree repository itself, instead of in a lookaside cache.</div><div><br></div><div>For example, with your normal package manager flow (yum/apt-get), they do depsolving, and download packages into a scratch area.  Then once all downloads are complete, they are all unpacked in serial.</div><div><br></div><div>This leads to potentially large peak space usage.  The way I have planned for rpm-ostree is quite different - we unpack the packages as they're downloaded and stage the content into the de-duplicating ostree repository.  Each object is carefully fsync()'d to disk at this time, the same way "ostree pull" works.</div><div><br></div><div>Unpacking as they're downloaded will also help me analyze them per above.</div><div><br></div><div>It seems difficult to capture this flow in libhif versus the traditional flow.  Maybe you could scatter the API with callbacks or something, but I think what I want in the short term is a convenient GObject wrapper around hawkey/librepo, which libhif is a good starting point.</div><br><blockquote type="cite"><div class="plaintext" style="white-space: pre-wrap;">I'll have some more example code in a few days time.</div></blockquote><br><div>Cool!  Looking forward to it.</div><div><br></div>