On Tue, 2007-03-27 at 15:25 +0200, Tim Lauridsen wrote:
seth vidal wrote:
> Why is that? I need to take a look at the code but there doesn't seem to
> be any reason why it shouldn't be able to fall back to downloading the
> whole package. It knows where it is.
>
> -sv
>
>
I look at the code, it works in the following way:
postresolve_hook(conduit):
for each po to be install in TransactionSet:
check if delta as available.
make the po point to the delta insted of the full rpm.
normal yum downloading (yum.downloadPkg)
postdownload_hook(conduit):
for each pkg in the downloadpackages:
if pkg is a delta:
try:
build the full rpm from the delta
except:
Something is rotten in the state of Denmark, bail
out.
if could be changed to:
predownload_hook(conduit,pkglist):
for each po in pkglist:
if as delta is available:
try:
download the delta (copy the download code from
yum.downloadPkgs)
build the full rpm.
set po.pkgtype = 'local' # To make yum skip it in the
normal download.
except:
Something is rotten in the state of Denmark, just
leave the po unchanged an yum will handle the download as normal.
normal yum downloading (yum.downloadPkg)
will download all the packages not processed without error, by the
predownload_hook.
Tim
If it's agreed that this is the best way, I'm happy to make it work this
way.
Jonathan