[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Debdelta APT Integration - Report 2



Hi,

During this period, I completed the debdelta method, added some
improvements and tested it.
I also started working on adding support for downloading the debdeltas
in apt-pkg/acquire-item.{cc,h} in pkgAcqArchive class. For that, I
wrote the pkgAcqDebdelta class and used it instead of pkgAcqArchive
inside the downloader. If a debdelta fails to download, pkgAcqDebdelta
queues a normal pkgAcqArchive to download the correct deb, as a
fallback. After successfully downloading a debdelta, it is fed into
the debdelta method for patching the new version of the deb. This
functionality covers the major steps of the implementation plan[1],
yet there are some tasks to be completed and major improvements to be
added.

Still, we do not have a proper progress reporting mechanism for
patching the debs. Therefore, we are currently unable to show the
progress details related to debdelta tasks. Currently, we do not use
any index for debdeltas and because of this, we cannot decide the
required download sizes of the deltas and verify the signatures of
downloaded deltas. As Michael suggests, we need to discuss about
maintaining a separate index file (may be optional) for debdeltas,
with the upstream as it adds an additional download cost.

Currently, in our implementation, we assume that the debdeltas are
found in the same location as the debs but I can only use it to test
with my local repo that I created for testing since there are no such
actual repositories. There are some debdelta repositories such as the
one created by Mennucc[2], and we need to use those when constructing
the delta URIs within pkgAcqDebdelta by some form of a replacement
rule. This rule can be set as an APT configuration option.

Since debpatch prints its warning messages directly to stdout, it is
difficult to use debpatch within the debdelta method, as it uses pipes
for internal communication with pckAcqDebdelta. I discussed this issue
with Michael and he suggested two solutions. The first is to modify
debpatch so that it does not print to the stdout, or write a machine
readable output that can be understood by APT (similar to --status-fd
option of dpkg). The second solution is to capture the stdout of
debpatch in the debdelta method. I am planning to work on this issue
after completing the url rewrite task.

[1] https://wiki.ubuntu.com/DebdeltaAptIntegration
[2] http://debdeltas.debian.net/debian-deltas

My APT branch in Launchpad: https://code.launchpad.net/~udeshike/apt/apt-ishan
-- 
Regards,
Ishan Jayawardena.


Reply to: